Mysql 如何从多个id的字符串中按id选择行
每行有多个ID,用逗号分隔。我想按id选择行 数据库如下所示:Mysql 如何从多个id的字符串中按id选择行,mysql,Mysql,每行有多个ID,用逗号分隔。我想按id选择行 数据库如下所示: R.No | User_Ids -----|--------- 1 | 38,323,45 -----|---------- 2 | 382,535,338 -----|------------ 3 | 32,38 -----|---------- 4 |238,388,2394 如果所选id为38,则我需要以下结果: R.No | User_Ids -----|--------- 1 | 38,32
R.No | User_Ids
-----|---------
1 | 38,323,45
-----|----------
2 | 382,535,338
-----|------------
3 | 32,38
-----|----------
4 |238,388,2394
如果所选id为38,则我需要以下结果:
R.No | User_Ids
-----|---------
1 | 38,323,45
-----|----------
3 | 32,38
我使用了这个查询
$sql="select User_Ids from table_name where User_Ids RLIKE '[[:<:]]".$Id."[[:>:]]'";
$sql=“从用户ID类似于“[[::]]”的表“名称”中选择用户ID”;
它将错误作为正则表达式的非法参数。您可以使用以下函数获得所需的结果:
SELECT * FROM test WHERE find_in_set(38, `Ids`);
现在您知道为什么将链接键放在逗号分隔的列表中是疯狂的了。如果还不太晚,请查看“初学者数据库设计”课程,然后在此表和用户表之间创建一个链接表(上面提到的副本解释了如何做到这一点,但这并没有改变一个事实,即如果在这一点上仍然有可能的话,这可能更应该被适当地规范化。)