Mysql запрос — Как использовать содержит?

В моей таблице столбец называется group_members_id содержит userid из 10 пользователей.
Я пытался выяснить, как я могу сделать запрос с MySQL, который извлекает детали этой строки, если дано userid соответствует любому из этих 10 идентификаторов пользователей.

"SELECT * FROM `table` WHERE `group_members_id`.contains('{$userid}')".

Этот код не работает. Может кто-нибудь мне помочь?

0

Решение

Вы можете использовать как это

"SELECT *
FROM `table`
WHERE `group_members_id` LIKE '%{$userid}%'"
2

Другие решения

использование лайк пункт

"SELECT * FROM table WHERE group_members_id LIKE '%$userid%'";
1

Во-первых, всегда используйте group_member_id в качестве идентификатора foregin и делайте это как int.

Во-вторых, никогда не используйте целочисленное значение в качестве строки. это поможет в других функциях, таких как сортировка и т. д.

В-третьих, если вы сохранили целое значение в виде строки в таблице, вы можете использовать следующее:

1.) Используйте ЛАЙК Ключевое слово Clause вместе со знаками процента в строке

"SELECT * FROM table WHERE group_members_id LIKE '%$userid%'";

2.) Если вы ищете более сложную комбинацию строк, чем вы указали в своем примере, вы можете использовать регулярные выражения (регулярное выражение):
Смотрите руководство MySQL для получения дополнительной информации о том, как их использовать: http://dev.mysql.com/doc/refman/5.1/en/regexp.html

1

Учитывая, что все идентификаторы пользователей имеют тип 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 + ")";
1
По вопросам рекламы [email protected]