MySql-选择记录,如字符串中的特定数字,并用逗号分隔
我有一个名为product_info的表,其中包含以下数据:MySql-选择记录,如字符串中的特定数字,并用逗号分隔,mysql,sql,regex,mysql-regexp,Mysql,Sql,Regex,Mysql Regexp,我有一个名为product_info的表,其中包含以下数据: +-------------+------------+----------------+ | title | slug | tags_id | +-------------+------------+----------------+ | Maserti | /maserati | 10,34,7,110 | | Ferrari | /ferrari | 10,3
+-------------+------------+----------------+
| title | slug | tags_id |
+-------------+------------+----------------+
| Maserti | /maserati | 10,34,7,110 |
| Ferrari | /ferrari | 10,34,7,107 |
| Rolls Royce | /rollroyce | 6,10,121,64,78 |
| Caterpillar | /cat | 4,8,210,214 |
| Peterbilt | /peterbilt | 8,100,210,214 |
+-------------+------------+----------------+
接下来我有一个php字符串:
$tag = ['id' => 10, 'slug' => 'luxurycars', 'title' => 'LuxuryCars'];
我想搜索我的表,看看是否有带有此标记的记录。您可以在tags_id行中看到标记的id
如您所见,标记的id为“10”。我尝试了很多查询,但结果总是不是我想要的。
例如:我想在tags_id中搜索'10',我希望它只匹配'10',但它匹配10、107、110和210以及任何类似或包含10的数字
我所期望的是,当我搜索名为LuxuryCars的标签“10”时,我希望玛莎拉蒂、法拉利和劳斯莱斯的结果显然是通过标签搜索,就像它们在表中一样
我不希望Peterbilt和Caterpillar出现在我的结果中,仅仅因为他们有一个与之相关联的标记210
请帮忙!
谢谢你的时间 要在逗号分隔的列表中搜索单个值,可以使用: 从文件中: 在_settr、strlist中查找 如果字符串str位于由N个子字符串组成的字符串列表strlist中,则返回1到N之间的值。字符串列表是由、个字符分隔的子字符串组成的字符串
SELECT *
FROM mytable
WHERE FIND_IN_SET('10', tags_id);