gpt4 book ai didi

mysql - 将 concat 与日期一起使用会使搜索区分大小写

转载 作者:行者123 更新时间:2023-11-29 03:06:37 24 4
gpt4 key购买 nike

问题:日期列上的查询连接将搜索区分大小写。当从 concat 中删除日期列时,搜索不区分大小写并返回预期的结果集。这发生在 DEV 而不是 QA 环境中。

这两个环境具有相同的服务器、数据库和连接排序规则设置,latin1_swedish_ci,但 Mysql 版本不同 (DEV:5.1.39; QA:5.1.61)

每个环境(引擎,字符集)中的表属性都是相同的:InnoDBlatin1

QRY:

 select contact_id, lastname, firstname, dob
from contact
where concat(lastname,' ',firstname,' ',dob) = 'styles furious 1988-06-18';

我们需要查询不区分大小写。

感谢任何帮助,谢谢。

最佳答案

无论如何,当您可以在客户端拆分字符串并执行 this 时,您为什么还要使用 CONCAT()

select contact_id, lastname, firstname, dob
from contact
where lastname = 'styles' and firstname = 'furious' and dob = '1988-06-18'

只要 lastnamefirstname 列都是 non-binary and using a case-insensitive collation ,此查询应不区分大小写。如果您在这些列上有索引,它也应该更有效率。

无论如何,如果您绝对坚持使用CONCAT(),您总是可以强制结果具有正确的类型和排序规则,like this :

select contact_id, lastname, firstname, dob
from contact
where
convert(concat(lastname, ' ', firstname, ' ', dob) using latin1)
collate latin1_general_ci = 'styles furious 1988-06-18';

但是,这真的很丑陋且效率低下,除非您真的没有其他选择,否则您甚至不应该考虑在生产中使用它。

关于mysql - 将 concat 与日期一起使用会使搜索区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14131021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com