SQL中的二进制文件

fir*_*ire 12 mysql

我有一个SQL语句:

SELECT * FROM customers WHERE BINARY login='xxx' AND password='yyyy'

表中没有blob/binary字段,在WHERE之后我还需要BINARY吗?

Ant*_*ney 17

BINARY是一个内置关键字,在您的WHERE子句之后强制进行比较以确定区分大小写的匹配项.

作为旁注,您还可以通过BINARY在创建表时添加关键字来使列区分大小写.

  • 这可能更清楚。这意味着 WHERE 之后的 BINARY 关键字是一个使搜索区分大小写的标志,这有点误导。正如 DVK 指出的那样,BINARY 关键字 *将其后面的字符串转换为二进制字符串。区分大小写是该强制转换的副作用,它仅影响该单词。如果您希望 BINARY 也区分大小写,则必须在每个 AND 或 OR 子句中重复 BINARY。二进制也可以用在 SELECT 语句中。 (2认同)

DVK*_*DVK 6

http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html

BINARY运算符将其后面的字符串转换为二进制字符串.这是一种简单的方法,可以逐个字节而不是逐个字符地强制进行比较.BINARY也会导致尾随空格很重要.


Thi*_*lem 5

SELECT 'user' = 'UsEr' // true
SELECT BINARY 'user' = 'UsEr' // false
Run Code Online (Sandbox Code Playgroud)