0

私は、人が国と姓名で検索される検索システムに取り組んでいます。ファーストネームとラストネームに使用concatしましたが、さらに条件を付けて使用するとうまくいかないようです。私のクエリは

select * from users_profile where CONCAT(fname,' ',lname) like '%v %'
or Email like '%v %' AND country='india'

上記で、「and」なしでクエリを使用すると、機能します。しかし、より多くの条件を指定する必要があり、単純に and を使用しなくconcatても機能します。

select * from users_profile where CONCAT(fname,' ',lname) like '%v %'
or Email like '%v %'

両方で動作させる方法concat とさらにand condition適用したい.

4

2 に答える 2

1

を使用しないでCONCATくださいWHERE。列の周りの関数は言うまでもありません。さらに、 ではなく列リストを指定する必要がありますSELECT *。また、基準の順序も確認してください。

次のようなことを試すことができます:

SELECT fullname, Email, country
FROM
    (SELECT CONCAT(fname, ' ', lname) AS fullname, Email, country FROM users_profile) a
WHERE (a.fullname LIKE '%v %' OR Email LIKE '%v ') AND country = 'india'
于 2012-09-18T20:32:03.450 に答える
1

AND は OR よりも優先順位が高いため、ステートメントをより論理的にグループ化する必要があります。

何かのようなもの:

select * from users_profile where (CONCAT(fname,' ',lname) like '%v %'
or Email like '%v %') AND country='india'

動作するはずです。

于 2012-09-18T20:32:24.160 に答える