gpt4 book ai didi

MySQL 搜索逗号分隔值语法

转载 作者:行者123 更新时间:2023-11-29 14:39:38 24 4
gpt4 key购买 nike

我正在使用MySQL。在我的表属性之一中,我有一个设备的序列号描述,例如“SM,ST,SK”。

当用户输入 SM 或 ST 或 SK 时,我希望我的查询返回结果

我当前的查询如下所示:

SELECT CONCAT(lvl1_id,',',lvl2_id)
FROM hier_menus
LEFT JOIN labels ON (hier_menus.id=label_id AND tbl=65 AND fld=2 AND lang_id=5)
WHERE
hm_type=13 AND lvl1_id=141 AND lvl2_id=id AND label='".addslashes($serial)."'";

它只能查看序列号列的第一个逗号部分。当用户输入ST时,它不会返回任何内容。

是否可以搜索整个长字符串“SM,ST,SK”以返回匹配的行?

最佳答案

mysql> select find_in_set('SK', 'SM,ST,SK');+-------------------------------+| find_in_set('SK', 'SM,ST,SK') |+-------------------------------+|                             3 | +-------------------------------+1 row in set (0.00 sec)mysql> select find_in_set('SP', 'SM,ST,SK');+-------------------------------+| find_in_set('SP', 'SM,ST,SK') |+-------------------------------+|                             0 | +-------------------------------+

您正在寻找 find_in_set,
然而,这不是一个优化解决方案

您应该设法将您的序列号规范化到另一个表中,
其中每个 SM、ST 和 SK 存储为一行

另一种方法是将数据类型转换为 set

关于MySQL 搜索逗号分隔值语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8245586/

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