在我的表格中,名为group_members_id
的列包含10位用户的userid
。
我一直试图找出如何使用MySQL来查询如果给定userid
匹配那10个用户ID中的任何一个,那么获取该行的详细信息。
"SELECT * FROM `table` WHERE `group_members_id`.contains('{$userid}')".
此代码无效。谁能帮我?
答案 0 :(得分:2)
您可以这样使用
"SELECT *
FROM `table`
WHERE `group_members_id` LIKE '%{$userid}%'"
答案 1 :(得分:1)
使用like子句
"SELECT * FROM table WHERE group_members_id LIKE '%$userid%'";
答案 2 :(得分:1)
首先,始终使用group_member_id作为foregin id并将其设为int。
其次,永远不要将整数值用作字符串。它将有助于其他功能,如排序等。
第三,如果在表中存储了整数值作为字符串,则可以按如下方式使用:
1。)使用LIKE Clause关键字以及字符串中的百分号
"SELECT * FROM table WHERE group_members_id LIKE '%$userid%'";
2。)如果您正在寻找比您在示例中指定的更复杂的字符串组合,您可以使用正则表达式(正则表达式): 有关如何使用它们的更多信息,请参阅MySQL手册:http://dev.mysql.com/doc/refman/5.1/en/regexp.html
答案 3 :(得分:1)
考虑所有用户ID都是INT类型:
rd /?
或者,如果它们是字符串类型,请使用:
<?php
//$aUserIds is an array of your User Ids.
$userIds = implode(",", $aUserIds);
$sQuery = "SELECT * FROM table WHERE group_members_id IN (" + $uSerIds + ")";