在我的表格中,名为group_members_id
的列包含012个用户的userid
。 我一直想弄清楚,如果给定的userid
匹配这10个userid中的任何一个,我可以使用MySQL查询该行的详细信息。Mysql查询 - 如何使用包含?
"SELECT * FROM `table` WHERE `group_members_id`.contains('{$userid}')".
此代码无效。谁能帮我?
在我的表格中,名为group_members_id
的列包含012个用户的userid
。 我一直想弄清楚,如果给定的userid
匹配这10个userid中的任何一个,我可以使用MySQL查询该行的详细信息。Mysql查询 - 如何使用包含?
"SELECT * FROM `table` WHERE `group_members_id`.contains('{$userid}')".
此代码无效。谁能帮我?
你可以得到这样
"SELECT *
FROM `table`
WHERE `group_members_id` LIKE '%{$userid}%'"
使用like条款
"SELECT * FROM table WHERE group_members_id LIKE '%$userid%'";
首次使用时,总是使用group_member_id作为foregin ID,并作为INT。
其次,从不使用整数值作为字符串。这将有助于像排序等
第三等功能,如果您有存储整数值如下表字符串,那么你可以使用如下:
1)使用LIKE条款关键字,并沿百分之字符串
"SELECT * FROM table WHERE group_members_id LIKE '%$userid%'";
2)如果你正在寻找串的更复杂的组合比你在你的例子中指定的迹象,你可能正则表达式(正则表达式): 见MySQL手册更多关于如何使用它们:http://dev.mysql.com/doc/refman/5.1/en/regexp.html
考虑到所有的用户ID是INT型:
<?php
//$aUserIds is an array of your User Ids.
$userIds = implode(",", $aUserIds);
$sQuery = "SELECT * FROM table WHERE group_members_id IN (" + $uSerIds + ")";
或者,如果他们是字符串类型,用途:
$userIds = implode(",", $aUserIds);
$sUserIds = "";
foreach($userId as $userIds)
{
$sUserIds += "'" + userId + "'";
}
$sQuery = "SELECT * FROM table WHERE group_members_id IN (" + $sUserIds + ")";
可能重复http://stackoverflow.com/questions/6121630/如何写入mysql-query-where-a-contain-a-or-b – rokas
只是为了分类,您试图从具有group_members_id = xyz的SQL表中提取记录,并且在字段group_members_id中有一个记录像{1},{2},{3},{4} ...等的列表? – user3750649
您可以使用find_in_set。 –