2009-05-20 9 views
1

Iは、フィールドID(主キー)、NAME1、NAME2、およびニックネームを持つテーブルを持っています。先例があるクエリの最初の一致のみを取得しますか?

名前が与えられていると、3つのフィールドのいずれかにその名前を含むエントリが返されます。しかし、私はそれが1つのエントリだけを返すようにしたいと思います。また、複数の一致がある場合は、最初にname1と一致するものを返すようにします。

SELECT * FROM table WHERE name1 like "Bob" OR name2 like "Bob" OR nicknames rlike "[,]Bob[,]|[,]Bob$"; 

ありがとう:

これは私が今、それはちょうど私のすべてを与えていたクエリです。私はC++とmysql ++でこれをやっています。

答えて

4
SELECT * FROM (
    SELECT * FROM table WHERE name1 like "Bob" limit 1 
    UNION SELECT * FROM table WHERE name2 like "Bob" limit 1 
    UNION SELECT * from table WHERE nicknames rlike "[,]Bob[,]|[,]Bob$" limit 1 
) AS t1 LIMIT 1; 

それぞれ1つの制限は、データベースが50,000のボブレコードをプルアップしないようにします。

+0

ありがとうございました –

関連する問題