gpt4 book ai didi

mysql - 如何从与任何列字符串匹配的字符集获取mysql中的行?

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

Table_A
=====================
id|prod_name|cat_id
------------------------
1 | Abc |1,2,5,6,11
------------------------
2 | Xyz |11,12,6,5
-----------------------
3 | Mno |6,9,8,10
....

.....
.
.
...........

从上面的“Table_A”中,我得到了具有 cat_id 的行,该行位于“cat_id”列中的 1,2,8 任何类别 id 中。

例如:

SELECT * FROM Table_A WHERE (cat_id LIKE '%1%' || cat_id LIKE '%2%' || cat_id LIKE '%8%');

结果应该是这样的:

id|prod_name|cat_id
------------------------
1 | Abc |1,2,5,6,11
-----------------------
3 | Mno |6,9,8,10

这在 mysql 中的单个查询中可能吗?请帮助我。

最佳答案

首先要做的事情是:您可能不应该像这样保持数据非规范化。这打破了 1NF。考虑将 Table_A.idcat_id 之间的连接存储在联结表中。这也会加快您的查找时间。

同时,使用 FIND_IN_SET()应该让你继续:

SELECT 
*
FROM
Table_A
WHERE
FIND_IN_SET('1', cat_id) > 0 OR
FIND_IN_SET('2', cat_id) > 0 OR
FIND_IN_SET('3', cat_id) > 0;

这将返回 cat_id 列中包含以下任意值的任意行:1、2 或 3。

关于mysql - 如何从与任何列字符串匹配的字符集获取mysql中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39774612/

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