Несколько операторов IF для MYSQL

Я пытаюсь показать значения somes в результатах моей базы данных, я использую этот код, но я не могу добиться успеха:

SELECT item_code, IF(category_code = 'HERR1', 'NO', 1) OR (category_code = 'COLN5', 'NO', 2) AS category_code, item_name, item_quantity FROM qa_items

РЕДАКТИРОВАТЬ: Я хочу показать, например:

If category_code = 'HERR1'
 Display = 1
else if category_code = 'COLN5'
 Display = 2
End If

Если кто-нибудь имеет какую-либо идею, был бы очень признателен

Ответ 1

Я бы предпочел использовать CASE:

SELECT item_code, 
CASE category_code 
WHEN 'HERR1' THEN 1
WHEN 'COLN5' THEN 2
ELSE 'NO'
END as category_code, item_name, item_quantity 
FROM qa_items

Но IF также будет работать: IF(category_code='HERR1',1, IF(category_code='COLN5',2,'NO'))

Ответ 2

Вам нужно вложить инструкции if

SELECT item_code, IF(category_code = 'HERR1', 'NO', IF(category_code = 'COLN5', 1, 2)) AS category_code, item_name, item_quantity FROM qa_items

Тогда первое, если произойдет сбой, и вложенное if будет оценивать

Ответ 3

Это то, что вы были после?

SELECT
  item_code,
  CASE category_code
    WHEN 'HERR1' THEN 1
    WHEN 'COLN5' THEN 2
    ELSE 'NO'
  END AS category_code,
  item_name,
  item_quantity
FROM qa_items

Ответ 4

Попробуйте выполнить

SELECT item_code, CASE category_code WHEN 'HERR1' THEN 1 WHEN 'COLN5' THEN 0 ELSE 'NONE' END AS category_code, item_name, item_quantity FROM qa_items

Ответ 5

В моей таблице из 3 столбцов один - package_price, employee_percentage, reference_customer_id.

Теперь я хочу, чтобы, если reference_customer_id > 0, то процент работника был равен referenced_commission, а если reference_customer_id = 0, то прямая комиссия. Я попробовал ниже путь:

SELECT if(reference_customer_id = 0,  sum(((package_price*employee_percentage)/100)) , 0) as direct_commission, if(reference_customer_id > 0,  sum(((package_price*employee_percentage)/100)) , 0) as reference_commission

Ответ 6

Пожалуйста, используйте это просто, это работает.

 SELECT if(reference_customer_id = 0,sum(((package_priceemployee_percentage)/100)),sum(((package_priceemployee_percentage)/100))) 
    as direct_commission

Ответ 7

Вы можете попробовать это. Используйте IF в запросе select и обновите нужную таблицу;)

создать таблицу ученик (отмечается как int, класс char);

вставить в значения студента (200, ноль), (120, ноль), (130, NULL);

ОБНОВЛЕНИЕ студента ВНУТРЕННЕЕ СОЕДИНЕНИЕ (выберите s.marks, IF (s.marks> = 200, 'A', IF (s.marks> = 130, 'B', 'P')) AS Grade из студента s) b на a.marks = b.marks SET a.Grade = b.Grade;