我想在数据库中搜索名称。但我只想选择比尔,而不是biLL或BiLL或......只是“比尔”。但是当我使用这个显示Bill,BiLL,BILL,bilL和...
的查询时query=`select * from names where name='Bill'`
答案 0 :(得分:2)
默认字符集和排序规则是latin1和latin1_swedish_ci,因此非二进制字符串比较默认情况下不区分大小写。这意味着,如果使用col_name LIKE' a%'进行搜索,则会获得以A或a开头的所有列值。要使此搜索区分大小写,请确保其中一个操作数具有区分大小写或二进制排序规则。例如,如果要比较具有latin1字符集的列和字符串,则可以使用COLLATE运算符使任一操作数具有latin1_general_cs或latin1_bin排序规则
您可以通过明确使用区分大小写的排序规则来解决此问题:
select * from names where name='Bill' COLLATE latin1_general_cs