Мой запрос 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".
Я хочу найти имя дилера с персонажем. Как написать запрос. Пожалуйста, помогите мне.
Я думаю, что ваша ошибка возникает из-за 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%'