1. ホーム
  2. mysql

[解決済み] MySQLのCONCAT条件付きselect

2022-05-15 16:24:35

質問

私は頭の中でこれをコンパイルしようとしています...私はfirstnameとlastnameフィールドを持つテーブルを持っています そして私は"Bob Jones"や"Bob Michael Jones"などの文字列を持っています。

問題は、たとえば 名字に Bob、そして Michael Jonesはlastnameにあります。

ということで、私は

SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast 
  FROM users 
 WHERE firstlast = "Bob Michael Jones"

が、unknown column "firstlast" と表示されます...誰か助けてください?

どのように解決するのですか?

指定したエイリアスはクエリの出力用で、クエリ自体では使用できません。

式を繰り返すこともできます。

SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast 
FROM users
WHERE CONCAT(firstname, ' ', lastname) = "Bob Michael Jones"

またはクエリをラップする

SELECT * FROM (
  SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast 
  FROM users) base 
WHERE firstLast = "Bob Michael Jones"