我正在尝试对与php数组中的值匹配的行进行sql查询.
基本上我有一个类似的数组
$userIDs[0] = 23456;
$userIDs[1] = 42901;
$userIDs[2] = 82731;
$userIDs[3] = 23921;
Run Code Online (Sandbox Code Playgroud)
并且想要执行单个SQL查询以获取与此数组匹配的行
SELECT * FROM users WHERE userID IN $userIDs
Run Code Online (Sandbox Code Playgroud)
是否有捷径可寻?或者我是否必须手动构建查询字符串?
我正在尝试在数据库中查询"product_id"包含在产品ID数组中的记录.
数组是多选输入(<select>
)的结果,如下所示:
$clients =
Array (
[0] => 80000016-1302638679
[1] => 8000003B-1329924004
)
Run Code Online (Sandbox Code Playgroud)
我想将该数组传递给SQL语句的"IN"子句,例如:
$sql = "SELECT * FROM sales WHERE product_id IN (".$clients.")";
Run Code Online (Sandbox Code Playgroud)
...但这不起作用(错误:) Message: Array to string conversion
.
一些帖子建议使用此函数以适合SQL的方式格式化数组:
function format_array($array){
return implode(', ', $array);
}
}
Run Code Online (Sandbox Code Playgroud)
如 ...
$sql = "SELECT * FROM sales WHERE product_id IN (".format_array($clients).")";
Run Code Online (Sandbox Code Playgroud)
这导致了这个查询:
SELECT * FROM sales WHERE product_id IN (80000016-1302638679, 8000003B-132992400)
......而且这个错误:
Unknown column '8000003B' in 'where clause'
我究竟做错了什么?任何帮助是极大的赞赏!如果需要,我可以澄清这个问题:)
我已经通过了这个地址:
并发现如果我使用join子句来分隔值,
也在数组的末尾.我怎么能删除最后一个?
我这样用
$ttst=array();
$ttst=array();
$tt = "SELECT frd_id FROM network WHERE mem_id='$userId'";
$appLdone = execute_query($tt, true, "select");
foreach($appLdone as $kk=>$applist){
$ttst[] = $applist['frd_id'];
}
$result = implode(',', $ttst);
Run Code Online (Sandbox Code Playgroud)
然后也是最后一个,
谢谢.
但它没有给每个值单引号.
我在php中创建了一个包含一些USER_ID的数组.我正在使用具有名为USERS的表的mysql数据库.现在我想只从USERS中选择那些user_id与数组中的USER_ID匹配的行.
提前致谢
我有一个包含字符串的数组
例如数组('14183f6c-9bf5','074306fb-6eaf')
我想将其转换为带有 IN 语句的 mysql 查询可读的格式,但我一直遇到问题,因为它是一个字符串..
基本上在我的 sql 查询中将其格式化为这样 - 我正在使用内爆但无济于事..任何想法
引导输入(“14183f6c-9bf5”、“074306fb-6eaf”)
$Guids = array('14183f6c-9bf5', '074306fb-6eaf');
$csv = implode('",', $Guids);
Run Code Online (Sandbox Code Playgroud) 我想做一个类似于以下的查询:
SELECT f_name, l_name, title from
-> employee_data where title
-> IN ('Web Designer', 'System Administrator');
Run Code Online (Sandbox Code Playgroud)
搜索条件以数组形式接收,$data = ['Web Designer', 'System Administrator']
现在我可以将该数组转换为Web Designer,System Administrator
使用:
$data = implode(',', $data)
Run Code Online (Sandbox Code Playgroud)
是否有一种很好的方法可以将该数组转换为'Web Designer', 'System Administrator'
如此,我可以直接将此短语插入到MySQL查询中,如帖子开头所示?
可能重复:
PHP/MYSQL在WHERE子句中使用数组
我有一个ID值为[1,5,2,6,7 ...]的数组,我需要在MySQL item_id IN(1,5,2,6,7 ...)语句中使用它来选择数组中列出的ID的行.如何将$ arrID转换为可插入SQL查询的内容?
EDIT-电话的背景:
if(!IsNullOrEmptyString($_GET["view_playlist"])) {
session_destroy();
}
$id_list = implode(",", $_SESSION("playlist"));
$sql = 'SELECT t.track_id, t.track_title, t.track_num, al.album_title, g.genre_name, a.artist_name, t.length, t.track_rating '.
'FROM track t, genre g, artist a, album al '.
'WHERE t.track_id IN('.$id_list.' AND t.genre = g.genre_id AND t.artist = a.artist_id AND t.album = al.album_id';
Run Code Online (Sandbox Code Playgroud) 我有一堆水果。我试图在“水果”列中获取包含这三种水果中的任何一种的所有行
$fruits = array('apple','banana','orange');
$imploded_fruits = implode(',',$fruits);
$sql = "SELECT * FROM market WHERE fruits IN ('$imploded_fruits');";
Run Code Online (Sandbox Code Playgroud)
这不是返回预期值。格式正确吗?
我正在尝试使用数组查询MySQL数据库,但我遇到了麻烦!
我有一个名为clients的表,我希望能够从'sector'列等于$ sectorlink的所有行中选择'name'.
然后,我想将所有名称放入一个数组,以便我可以执行下一个查询:从另一个表中选择所有行,其"client"列等于第一个查询返回的名称之一.我做错了,因为它返回致命的SQL错误.我对所有变量感到困惑!
$ sectorlink和$ connection是在此代码之外定义的唯一变量
有什么建议?
$query1 = "SELECT name FROM clients WHERE sector = '$sectorlink'";
$clientresult = mysql_query($query1, $connection) or trigger_error("SQL", E_USER_ERROR);
while($row = mysql_fetch_array($clientresult)){
foreach($row AS $key => $value){$temp[] = '"'.$value.'"';}
$thelist = implode(",",$temp);
$query = "SELECT count(*) FROM studies WHERE client IN ($row) ORDER BY (date) desc";
$result = mysql_query($query, $connection) or trigger_error("SQL", E_USER_ERROR);
}
Run Code Online (Sandbox Code Playgroud) 我目前有一个值数组(business_id的)
让我们说吧
Array
(
[0] => 12
[1] => 14
[2] => 15
)
Run Code Online (Sandbox Code Playgroud)
使用这些值中的每一个从数据库中获取每个business_id的关联行信息的最佳方法是什么.
可以是一对一的查询是我的问题.显然,你可以做到
$q = "select * from business where business_id = 12";
$rs = mysql_query($q);
Run Code Online (Sandbox Code Playgroud)