gpt4 book ai didi

MySQL 在字段中搜索 1,2,3,11,22,33

转载 作者:行者123 更新时间:2023-11-29 04:31:17 26 4
gpt4 key购买 nike

我可以搜索 1 AND 2 AND 3 而不会因为 11,22,33 在字段中而得到错误匹配吗?

具有字符串 = "11,22,33"的字段不应返回任何结果。

最佳答案

首先,在字段中使用逗号分隔值是有问题的,您应该考虑将它们存储在一个单独的表中。然后你可以更有效地获取记录:

select ...
from mainTable t
inner join valueTable v1 on v1.id = t.id and v1.value = 1
inner join valueTable v2 on v2.id = t.id and v2.value = 2
inner join valueTable v3 on v3.id = t.id and v3.value = 3

如果那是不可能的,你必须采用慢速字符串匹配方式。要匹配逗号分隔字符串中的值,您可以使用 like 运算符:

... where
concat(',', someField, ',') like '%,1,%' and
concat(',', someField, ',') like '%,2,%' and
concat(',', someField, ',') like '%,3,%'

将分隔符放在搜索值的两边可确保您不会得到任何误报。在字段值前后添加逗号可确保您可以找到第一个和最后一个值。

关于MySQL 在字段中搜索 1,2,3,11,22,33,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022872/

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