0
SELECT * FROM (`users`) 
JOIN `groups` ON `users`.`groupid` = `groups`.`group_id` 
WHERE `groupid` = `1`
AND `first_name` LIKE '%john%' 
OR `last_name` LIKE '%john%' 
OR `username` LIKE '%john%'
OR `email` LIKE '%john%' 
LIMIT 25

LIKE を使用してユーザー フィールドでユーザーを検索し、WHERE sql コマンドを使用して特定のユーザー グループでユーザーを検索するためのこのクエリ。

しかし、LIKE コマンドは WHERE をオーバーライドします。結果は次のとおりです。

id        groupid        firstname
===================================
2         3              john doe
5         2              johny dash

結果の groupid は 3 ですが、1 でなければなりません

イコリングで LIKE コマンドを使用したくありません。

WHERE `groupid` LIKE `1`

私に何ができる?

4

2 に答える 2

1

これを試して:

SELECT * FROM (`users`) 
JOIN `groups` ON `users`.`groupid` = `groups`.`group_id` 
WHERE `groupid` = `1`
AND (
      `first_name` LIKE '%john%' 
       OR `last_name` LIKE '%john%' 
       OR `username` LIKE '%john%'
       OR `email` LIKE '%john%' 
)
LIMIT 25
于 2013-07-05T08:23:03.193 に答える
0
SELECT * FROM (`users`) 
JOIN `groups` ON `users`.`groupid` = `groups`.`group_id` 
WHERE `groupid` = `1`
AND `first_name` LIKE '%john%' 
OR `last_name` LIKE '%john%' 
OR `username` LIKE '%john%'
OR `email` LIKE '%john%' 
LIMIT 25

する必要があります

SELECT * FROM (`users`) 
JOIN `groups` ON `users`.`groupid` = `groups`.`group_id` 
WHERE `groupid` = `1`
AND 
(
    `first_name` LIKE '%john%' 
    OR `last_name` LIKE '%john%' 
    OR `username` LIKE '%john%'
    OR `email` LIKE '%john%' 
)
LIMIT 25
于 2013-07-05T08:26:47.750 に答える