我的表用户
+----+-----------+---------+--------+---------+------+-------+
| id | name | email | number | call_no | chek | Extra |
+----+-----------+-------+----------+---------+------+-------+
| 1 | one | [email protected] | 123 | 1164 | 1 | 1,2 |
+----+-----------+---------+---------+---------+------+------+
| 2 | two | [email protected] | 123 | 1164 | 1 | 2,1 |
+----+-----------+---------+---------+---------+------+------+
我有一个叫它Extra
包含值的字段1,2
我的问题是什么?
我需要像one,two
从用户表中匹配表ID和myresult中的1,2
对于简单的示例query.what我尝试在下面?
select name from user Extra in('1,2');
我的预期输出是
one,two
如果我尝试做爆炸,如果我在循环中运行它,我可以得到结果,但是我需要这样做,sql
有可能得到它吗?
您应该有一个单独的表格,id
每个表格一行,每个的值extra
。这称为联结表。SQL具有很好的数据结构来存储事物列表,称为表而不是字符串。而且,将数字存储为字符甚至更糟。
但是,您可以使用join
和聚合执行您想要的操作:
select id, group_concat(e.name) as names
from table t left join
table e
on find_in_set(t.id, e.extra) > 0
group by t.id;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句