0

次のクエリがあります。

SELECT concat(first_name, ' ', last_name) as full_name FROM auth_user

次のようにするにはどうすればよいですか。

SELECT concat(first_name, ' ', last_name) as full_name FROM auth_user 
    **WHERE full_name IS NOT NULL**

(これは を生成しますUnknown column 'full_name' in 'where clause')

4

2 に答える 2

2

これを回避する 2 つの方法:

SELECT concat(first_name, ' ', last_name) as full_name FROM auth_user 
WHERE first_name IS NOT NULL and last_name is not null

また、

select * from (
    SELECT concat(first_name, ' ', last_name) as full_name FROM auth_user)
where full_name is not null
于 2012-05-30T06:06:32.403 に答える
0
SELECT concat(IF(first_name IS NOT NULL, first_name, ''), ' ', IF(last_name IS NOT NULL, last_name, '')) as full_name FROM auth_user;

where 句で IS NOT NULL を使用する場合と IF 句で使用する場合の違いは、where 句では null 値を含む行が除外 (フィルター処理) されるのに対し、if 句ではすべての行が取得されますが、full_name が「不明」ではなく、null コンポーネントが欠落しているだけです

于 2012-05-30T06:06:53.087 に答える