1

namesurnameの 2 つの列があります。ユーザーが名前、姓、またはその両方を書いた場合にその人を見つける検索クエリを作成したいと思います。

現在、私は持っています

    SELECT name, surname, id FROM users WHERE 
    (name LIKE '%".$term."%' || surname LIKE
    '%".$term."%')  AND position='0' LIMIT 5

ユーザー John Lemon がいるとします。Johnと書くかLemonと書くと、クエリは彼を見つけます。しかし、 John Lemonと書いても何も見つかりません。

次のような構文を使用することは可能ですか?

 SELECT name, surname, id FROM users WHERE (
  name+' '+surname LIKE
 '%".$term."%')  AND position='0' LIMIT 5
4

3 に答える 3

5

このようなもの?

SELECT name, surname, id FROM users WHERE
    name LIKE '%".$term."%'
    OR surname LIKE '%".$term."%'
    OR CONCAT(name, ' ', surname) LIKE '%".$term."%'
于 2012-04-21T15:41:32.050 に答える
2

次のクエリを使用します。

SELECT name, surname, id FROM users WHERE
CONCAT(name, ' ', surname) LIKE '%".$term."%'
于 2012-04-21T15:42:22.607 に答える
0

あなたが望むのはMySQLのconcatだと思います。

WHERE CONCAT(NAME,' ',SURNAME) LIKE '%".$term."%'
于 2012-04-21T15:42:32.703 に答える