我想在数据库中搜索一个名字。但我只想选比尔,不是比尔或比尔或…只是“比尔”。但是当我使用这个查询显示bill,bill,bill,bill和…
query=`select * from names where name='Bill'`
最佳答案
引用the documentation:
默认字符集和排序规则为Latin1和Latin1_-Swedish_-Ci,因此默认情况下,非二进制字符串比较不区分大小写。这意味着,如果使用列名称(如“a%”)进行搜索,则会得到以a或a开头的所有列值。若要使此搜索区分大小写,请确保其中一个操作数具有区分大小写或二进制排序规则。例如,如果要比较同时具有latin1字符集的列和字符串,则可以使用collate运算符使任一操作数具有latin1常规或latin1 bin排序规则
可以通过显式使用区分大小写的排序规则来克服此问题:
select * from names where name='Bill' COLLATE latin1_general_cs
关于mysql - 在mysql中选择不同的上下,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26692398/