gpt4 book ai didi

mysql - 如何搜索逗号分隔值

转载 作者:行者123 更新时间:2023-11-29 01:15:07 25 4
gpt4 key购买 nike

你好,我有一个字符串存储在我的数据库中,用逗号分隔例如:(新南威尔士州、昆士兰州等)知道我的问题是,当我尝试搜索昆士兰时,我无法获得结果,但当我尝试搜索新南威尔士时,我得到了记录。

但是当我尝试搜索 queen 等时,我想得到结果。我是 php 的新手,所以请帮助...

最佳答案

短期解决方案

使用 FIND_IN_SET function :

WHERE FIND_IN_SET('Queensland', csv_column)

...因为在两端使用带有通配符的 LIKE 是有风险的,这取决于匹配的多少/多少(并且它还确保了表扫描)。两边带有通配符的 LIKE 的性能与 REGEXP 相当——这意味着不好。

长期解决方案

不要存储逗号分隔值——使用适当的多对多关系,涉及三个表:

事物

  • thing_id(主键)

澳大利亚各州

  • State_id(主键)
  • 州名

Things_to_Auz_States

  • thing_id(主键,THINGS 表的外键)
  • State_id(主键,AUSTRALIAN_STATES 表的外键)

您需要 JOIN 来从三个表中获取数据,但如果您想知道有多少与特定状态或两个特定状态相关联,这是合适的模型。

关于mysql - 如何搜索逗号分隔值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3852443/

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