SQL-запрос с IF, AS и LIKE

0

Мой запрос mySQL:

 $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" в разделе "where".

Я хочу найти имя дилера с персонажем. Как написать запрос. Пожалуйста, помогите мне.

Теги:

1 ответ

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
    Да, я попробовал это. Но проблема не решена.
  • 0
    какая ошибка происходит сейчас?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню