2017-12-15 17 views
0

私のMySQLのクエリは次のとおりです。SQL IFとクエリ、ASおよびLIKE

$userlist_sql = "SELECT id,user_type,retailerId,subdealerId,dealerId,assigned_role, 
IF(user_type = '5', (select name from retailer where retailer.id=users_dealers.retailerId), (select name from sub_dealers where sub_dealers.id=users_dealers.subdealerId)) AS from_name, 
IF(assigned_role = '6', (select name from dealers where dealers.id=users_dealers.dealerId), (select name from sub_dealers where sub_dealers.id=users_dealers.dealerId)) AS assigned_name 
FROM users_dealers WHERE from_name LIKE '%a%' OR assigned_name LIKE '%a%'"; 

上記のクエリは次のようなエラーが表示されます。

Database_Exception [1054]:「不明な列 'users_dealers.from_name'どこの句 '。

文字でディーラーの名前を検索したい。クエリを書く方法。私を助けてください。

+0

そして、あなたはあなたがlearned--あなたの特定の名前ずにそのエラーメッセージをGoogleで検索:次のコードのように同様

? [ask]と[mcve]を読んで行動してください。そしてエラーがなくなるまでコードを単純化すると?そしてあなたの目標のどの部分を行うことができますか? – philipxy

答えて

1

likeの記載によりお客様のエラーが発生したと思います。文中に(')を追加する必要があります。また、from_nameをフィールドとして使用することはできません。これをサブクエリとして最初に作成する必要があります。

select * from (SELECT 
id,user_type,retailerId,subdealerId,dealerId,assigned_role, 
IF( 
user_type = '5', 
(select name from retailer where retailer.id=users_dealers.retailerId), 
(select name from sub_dealers where sub_dealers.id=users_dealers.subdealerId) 
) 
AS from_name, 
IF(
assigned_role = '6', 
(select name from dealers where dealers.id=users_dealers.dealerId), 
(select name from sub_dealers where sub_dealers.id=users_dealers.dealerId) 
) 
AS assigned_name 
FROM users_dealers) t1 WHERE t1.from_name LIKE '%a%' OR t1.assigned_name LIKE '%a%' 
+0

はい、私はこれを試しました。しかし問題は解決されていません。 – Arya

+0

は現在エラーが発生していますか? –

+0

はい、 "Database_Exception [1054]: 'where句'の" unknown_column_user_dealers.from_name "のエラー" – Arya

関連する問題