选择以逗号分隔值的列包含ID

时间:2016-10-28 02:37:52

标签: mysql sql csv

我有两个表:tbl_posttbl_tags

tbl_post中,字段tags包含来自tbl_tags ID 作为数组。 示例:'1,3,15,20''4,15,6,21'

我想从tbl_post中选择其tags字段包含来自tbl_tags的ID的记录(例如:' 15')。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

怎么样:

SELECT * FROM tbl_post WHERE tbl_post.tags LIKE '%15%';

OR

SELECT * FROM tbl_post WHERE Contains(tbl_post.tags, '15');

根据你的评论,你可以试试这个

DECLARE @id INT = 15
DECLARE @stringId VARCHAR(50) = CAST(@id AS VARCHAR(50))

SELECT * 
FROM tbl_post 
WHERE tbl_post.tags = @stringId -- When there is only 1 id in the table
OR tbl_post.tags LIKE @stringId + ',%' -- When the id is the first one
OR tbl_post.tags LIKE '%,' + @stringId + ',%' -- When the id is in the middle
OR tbl_post.tags LIKE '%,' + @stringId -- When the id is at the end

Referenced from this SO post

答案 1 :(得分:0)

适用于所有情况的查询:

@media(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { 
/* Retina-specific stuff here */
}

SELECT * FROM `tbl_post` WHERE find_in_set('15',tbl_post.tags)