MySQL: 在文本(CSV)列中查找匹配整数的列
P粉336536706
P粉336536706 2024-04-04 18:03:46
0
1
303

这个表有一个文本列,以CSV格式存储对其他记录的引用,例如:

+----+----------------+
| id | linked_folders |
+----+----------------+
| 90 |    NULL        |
| 91 |    NULL        |
| 92 |    123,1,4,40  |
| 93 |    123,1       |
| 94 |    NULL        |
| 95 |    235,8       |
| 96 |    90          |
| 97 |    NULL        |
| 98 |    NULL        |
| 99 |    NULL        |
+----+----------------+

$id = 90;
SELECT * FROM my_table WHERE id = $id OR $id is in linked_folders

上面的伪查询应该返回行90和96。

我想匹配我拥有的某个确切值是否在这个字段上。

我在想使用LIKE可能行不通,因为我不知道逗号前后是否存在。

我有什么替代方案吗?

P粉336536706
P粉336536706

全部回复(1)
P粉885035114

可以使用FIND_IN_SET来实现:

select * 
from my_table 
where id = 90 or FIND_IN_SET(90, linked_folders) > 0

这里有演示

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!