我想使用IF()函數 和CONCAT()函數將某些列值轉換爲列,但我無法以某種方式得到它。 我運行這個SQL後:使用CONCAT()將列值合併到一列
SELECT
IF(meta_key = 'property_id', CONCAT(meta_key, ' ', meta_value), 'false') AS property_id,
IF(meta_key = 'property_contract', CONCAT(meta_key, ' ', meta_value), 'false') AS property_contract,
IF(meta_key = 'property_agents', CONCAT(meta_key, ' ', meta_value), 'false') AS property_agents
FROM wp_postmeta
WHERE property_id !='faslse'
and property_agents = 'John Doe'
我得到這個錯誤 - :
我想這個查詢,但回報1054未知列在 'where子句'
編輯 'PROPERTY_ID' 0行...
select *
from
( select
IF(meta_key = 'property_id', CONCAT(meta_key, ' ', meta_value), 'false') AS property_id,
IF(meta_key = 'property_contract', CONCAT(meta_key, ' ', meta_value), 'false') AS property_contract,
IF(meta_key = 'property_agents', CONCAT(meta_key, ' ', meta_value), 'false') AS property_agents
from
wp_postmeta) p
WHERE
p.property_id != 'false'
and p.property_contract != 'false'
and p.property_agents!= 'false'
關於編輯:查詢將返回0行,因爲所有三個值都不會!='false'必須預期:如果meta_key的值爲property_id,則meta_value和property_value將爲false,對於其他任何值 – fthiella
@fthiella我該如何解決這種情況? –
我會更新我的答案,但不清楚這個問題,但我想我知道什麼是問題 – fthiella