如果我有一个数据库,其中有一个名为items
with的字段'1,2,3,7,15,25,64,346'
。是否有使用逗号作为分隔符并获取每个数字并开始新查询并获取该 ID 的信息的功能?像一个foreach
但在sql中?
看得那么清楚,却无法用语言表达……
您可以使用此查询,
SELECT * FROM TABLE_NAME WHERE COLUMN_NAME in (1,2,3,7,15,25,64,346);
$row = '1,2,3,7,15,25,64,346'; // $row = $field['value']
$arr = explode(',',$row);
foreach($arr as $a) {
// write your query
}
似乎您想要这样的数据,其中“源”是具有该列的表
SELECT target.* FROM target
LEFT JOIN source ON FIND_IN_SET(target.id, source.ids_row)
您可以使用查询SELECT * FROM table_name WHERE id IN ( 1,2,3,4,5 )
来查找具有 id 的数据。
无需分隔值。这将为您提供所需的结果。
有一种方法可以执行“SQL foreach”。使用 PhP 来做
此外,拥有这样的字段意味着您的数据库未标准化。你应该看看关系数据库规范化,否则你的数据库越大,你的问题就会越大。