在我的表格中,名爲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。 –