行中每个数字的一​​个查询

时间:2013-08-23 06:23:20

标签: php mysql database

如果我的数据库中包含一个名为items的字段,其中包含'1,2,3,7,15,25,64,346'。 是否有一个函数可以使用逗号作为分隔符并获取每个数字并启动一个新查询并获取该ID的信息?像foreach但在sql中?

我可以看得很清楚,但不能用语言表达......

6 个答案:

答案 0 :(得分:1)

是的,有。您可以使用命令 IN

mysql_query( 'SELECT * FROM `table` WHERE `id` IN ( 1,2,3,4,5 );' );

WHERE - IN

答案 1 :(得分:1)

您可以使用此查询

SELECT * FROM TABLE_NAME WHERE COLUMN_NAME in (1,2,3,7,15,25,64,346);

答案 2 :(得分:0)

$row =  '1,2,3,7,15,25,64,346'; // $row = $field['value']
$arr = explode(',',$row);

foreach($arr as $a) {
  // write your query
}

答案 3 :(得分:0)

您可以使用查询SELECT * FROM table_name WHERE id IN ( 1,2,3,4,5 )查找具有ID的数据。

无需分离值。这将为您提供所需的结果。

答案 4 :(得分:0)

有办法做“SQL foreach”。使用PhP

进行

此外,拥有此类字段意味着您的数据库未规范化。您应该看看关系数据库规范化,否则数据库越大,问题就越大。

答案 5 :(得分:0)

似乎你想要这样的数据,其中'source'是具有列

的表
SELECT target.* FROM target
LEFT JOIN source ON FIND_IN_SET(target.id, source.ids_row)