【发布时间】:2011-10-23 10:01:05
【问题描述】:
我使用 php mysql 将 AES 加密数据存储在数据库中。我使用 AES_ENCRYPT 输入的。问题是数据来自 iphone 并且成员的“名字”以大写字母形式出现并存储为大写字母。例如'Pooja'
我想知道当我去搜索以下内容时它没有给我任何结果。
SELECT *
FROM member
WHERE LOWER(AES_DECRYPT(fname,'xxxxxxxxxxxxxxxxx')) LIKE'%$pooja%'
当我不使用 LOWER 时,它会给我“Pooja”。
有人可以在这里纠正我吗?
【问题讨论】:
-
你试过输出
LOWER(AES...))的结果吗? -
是的,它不会将我输出到小写。
-
你能举一个不能降低的示例字符串吗?
-
默认情况下 MySQL 有一个不区分大小写的字符串比较,所以你可能不需要 LOWER 并且问题可能与解密有关。你使用什么排序规则?我认为区分大小写的有
_cs后缀。 -
请注意,二进制排序规则与区分大小写的排序规则不同,尽管在这种情况下,两者都可能为您提供所需的结果。有一个粗略的解释in the manual。