SQL заявка с LIKE в base64 кодиран стринг

uphero

Registered
Имам запис в бд кодиран с base64,имали начин да търся в него?

Некодирано е :
Иван харесва Мария.
Мога ли ако е кодирано да търся в него с LIKE?
 
uphero каза:
Имам запис в бд кодиран с base64,имали начин да търся в него?

Некодирано е :
Иван харесва Мария.
Мога ли ако е кодирано да търся в него с LIKE?


SELECT * FROM table WHERE FROM_BASE64(pole) LIKE '%string%'

ако използваш MySQL 5.6.1 или по-нова версия. Нещо такова би трябвало да проработи.

http://dev.mysql.com/doc/refman/5.6/en/string-functions.html#function_from-base64
 
deam0n каза:
uphero каза:
Имам запис в бд кодиран с base64,имали начин да търся в него?

Некодирано е :
Иван харесва Мария.
Мога ли ако е кодирано да търся в него с LIKE?


SELECT * FROM table WHERE FROM_BASE64(pole) LIKE '%string%'

ако използваш MySQL 5.6.1 или по-нова версия. Нещо такова би трябвало да проработи.

http://dev.mysql.com/doc/refman/5.6/en/string-functions.html#function_from-base64
Не става,пише че такава функция не съществува
 
Кодирай в base64 текста, с който искаш да търсиш (като не забравиш да му махнеш последния символ), и след това го използвай за да търсиш с LIKE, но имай в предвид, че търсенето ще бъде case sensitive, т.е. ще има значение малки и главни букви.


PHP:
$kw = "World";

//обикновенно би направил така:
$kw_b64 = base64_encode($kw); //V29ybGQ=

//Обаче трябва да махнеш равното в края, затова:
$kw_b64 = substr(base64_encode($kw), 0, -1); 

//и сега вече търсиш:
$sql = "SELECT * FROM `table` WHERE `column` LIKE '%".$kw_b64."%' ";

Ако в съответната колона имаш например "Hello World!", което е "SGVsbG8gV29ybGQh", а пък ключовата ти дума е "World", което е "V29ybGQ" (без равното на края), ще бъде открито. Обаче ако ключовата ти дума е "world" (малка начална буква), което е "d29ybGQ", няма да бъде открит резултат.
 
exec каза:
Кодирай в base64 текста, с който искаш да търсиш (като не забравиш да му махнеш последния символ), и след това го използвай за да търсиш с LIKE, но имай в предвид, че търсенето ще бъде case sensitive, т.е. ще има значение малки и главни букви.
Ще пробвам,А колкото до това с малки и големи букви няма да е проблем защото няма да е точно търсачка
 

Back
Горе