Понимание оператора IF в SQL-запросе

#mysql #sql

#mysql #sql

Вопрос:

Я вставляю текстовую строку в свою базу данных MySQL.

Пример текстовой строки: [1,0,1]

Позиции в строке представляют valueOne, valueTwo , valueThree .

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

 Select quiz_answer from quizes
WHERE
IF valueOne  > 0 THEN
     result = pie;
 IF valueTwo > 0 THEN
     result = cookies;
  IF valueThree >0 THEN
     result = fruit;
 

Ответ №1:

if совершенно не нужно (и, как написано, синтаксически неверно). Просто используйте логическую логику:

 select quiz_answer
from quizes
where (valueOne  > 0 and result = pie) or
      (valueTwo > 0  and result = cookies) or
      (valueThree > 0 and result = fruit);
 

Обратите внимание, что если pie , cookies , и fruit предназначены для строк, они должны быть заключены в одинарные кавычки.

Комментарии:

1. Я не получаю никаких результатов. Чтобы уточнить, текстовая строка в моем поле db выглядит следующим образом: [1,1,0,0,0,1,0,0,0,0] (включая скобки).

2. Это не работает с или без бита, который я добавил в конце: И question_id=79

3. выберите answer_data из wp_learndash_pro_quiz_statistic, где ( valueOne > 0 и результат = ‘pie’ ) или (valueTwo> 0 и результат = ‘cookies’) или (valueThree> 0 и результат = ‘fruit’) или (valueFour> 0 и результат = ‘pie’ ) или (valueFive> 0 и результат =’cookies’ ) ГДЕ question_id = 79

4. На самом деле у меня есть «И question_id=79, а не ГДЕ question_id=79

5. @phillystyle123 . . . Я понятия не имею, к чему относится ваш вопрос. Это отвечает на вопрос, который на самом деле был задан.