使用具有多个ID的php变量进行选择
我有一个PHP变量,如下所示,例如:使用具有多个ID的php变量进行选择,php,sql,Php,Sql,我有一个PHP变量,如下所示,例如: $list = "12|421|466|501|1042|" 我想做的是将每个数字与数据库表中的一个字段相匹配 SELECT * FROM tableName WHERE id = any of the numbers in $list 哪种方法最简单 SELECT * FROM table WHERE id LIKE '%$list%' 不太确定|是一个好的分离者。也许你应该试着把它设置成一个数组 下面的人明白了 不太确定|是一个好的分离者。也许你应
$list = "12|421|466|501|1042|"
我想做的是将每个数字与数据库表中的一个字段相匹配
SELECT * FROM tableName WHERE id = any of the numbers in $list
哪种方法最简单
SELECT * FROM table WHERE id LIKE '%$list%'
不太确定|是一个好的分离者。也许你应该试着把它设置成一个数组
下面的人明白了
不太确定|是一个好的分离者。也许你应该试着把它设置成一个数组
下面的人明白了 使用以下SQL:
SELECT * FROM tableName WHERE id IN (12, 431, 466, 501, 1042)
使用,将列表转换为逗号分隔的列表。使用以下SQL:
SELECT * FROM tableName WHERE id IN (12, 431, 466, 501, 1042)
使用,可将列表转换为逗号分隔的列表。在以下情况下使用:
“从id位于(“.str_replace(“|”)、“,”和substr($list,0,-1))”中的tableName中选择*”
用于以下情况:
“从id位于(“.str_replace(“|”)、“,”和substr($list,0,-1))”中的tableName中选择*”
这应该可以:
<?php
$list = "12|421|466|501|1042|";
$items = array_filter(
array_map( 'trim', explode( "|", $list ) ),
function( $item ) {
return $item != ''; // filter empty values.
}
);
$query = 'SELECT foo FROM bar WHERE id IN ( ' . implode( ', ', $items ) . ' );';
echo $query;
这应该可以:
<?php
$list = "12|421|466|501|1042|";
$items = array_filter(
array_map( 'trim', explode( "|", $list ) ),
function( $item ) {
return $item != ''; // filter empty values.
}
);
$query = 'SELECT foo FROM bar WHERE id IN ( ' . implode( ', ', $items ) . ' );';
echo $query;
使用replace将|替换为逗号,并删除最后一个|,这样您就可以输入字符串
正确的格式
$list = str_replace('|',',',$list);
$query = "select * from table where ID in ($list)";
使用replace将|替换为逗号,并删除最后一个|,这样就可以输入字符串
正确的格式
$list = str_replace('|',',',$list);
$query = "select * from table where ID in ($list)";
如果您想要组合结果,可以在
语句中使用,如:
SELECT * FROM tableName WHERE id IN ( $cat = str_replace("|", "," , $list) )
或者,如果需要单独的结果,则必须遍历所有值
$array = preg_split( "\\|" , $list );
foreach ($array as $value) {
SELECT * FROM tableName WHERE id = $value
}
如果您想要组合结果,可以在
语句中使用,如:
SELECT * FROM tableName WHERE id IN ( $cat = str_replace("|", "," , $list) )
或者,如果需要单独的结果,则必须遍历所有值
$array = preg_split( "\\|" , $list );
foreach ($array as $value) {
SELECT * FROM tableName WHERE id = $value
}
从id所在的tableName('.str_replace('|',',',$list)中选择*
它将使用重新拼贴所有|,然后您可以在条件中使用运行查询以获得所需的记录。从表名中选择*,其中id位于('.str_replace('|',',',',$list)。')
它将使用重新拼合所有| with,然后您可以在条件中运行query with以获得所需的记录。我认为这将产生一个解析错误,因为$list中的最后一个字符是a |,因此SQL将包含在(x,y,z,)中。注意最后一个逗号。根据我的例子,我认为过滤在这里会有所帮助。是的,后面的逗号会给出一个MySQL错误。编辑以从$list中删除最后一个字符我认为这会产生解析错误,因为$list中的最后一个字符是|,因此SQL将包含在(x,y,z,)中。注意最后一个逗号。根据我的例子,我认为过滤在这里会有所帮助。是的,后面的逗号会给出一个MySQL错误。编辑以从$list中删除最后一个字符