2017-01-03 2 views
-2

В настоящее время у меня есть таблица с тремя столбцами: Columns1 Columns2 Columns3. Все три столбца имеют тип int. Столбцы1 и столбцы2 получают числовые данные из переменной php, в то время как столбцы 3 вводятся вручную. (Использование mySQL)SQL SELECT Column на основе условия

Я хочу выбрать один из двух столбцов (столбцы1 или столбцы2) на основе идентификатора и значения в столбцах3. Например, предположим, что идентификатор равен 1 в столбцах2, а столбцы3 имеют значение 1, а затем я хочу столбцы1. Если идентификатор равен 1 в столбцах1, а столбцы3 имеют значение 1, то я хочу значение столбцов 2. Надеюсь, изображение ниже может прояснить, о чем я говорю.

enter image description here

+0

Что должно случиться, если столбец1 равен 3, столбец2 равен 2, столбец3 равен 2? Было бы лучше, если бы вы описали логику, а не просто представили нам пример. – Shadow

+0

@Shadow, давайте просто скажем, что столбец3 всегда находится в двух состояниях (1 или 2), никогда ничего ниже или выше. – Czar

+2

Это не вопрос. – Philipp

ответ

0

Это действительно простой сценарий. Вы можете добиться этого простым условием OR.

Ниже приведен пример запрос вы можете использовать

SELECT 
    CASE 
    WHEN columns1 = columns3 THEN columns2 
    WHEN columns2 = columns3 THEN columns1 
    END colvalue 
FROM table1 
WHERE columns1 = columns3 
OR columns2 = columns3; 

Результата, который я получил это

enter image description here

Надеется, что это поможет вам.

+0

Спасибо Viki888. Я новичок в SQL, поэтому я знаком с синтаксисом. Итак, что такое colvalue? Получает ли оно значение идентификатора. Я пропустил его в своем коде, и он отлично работает без него. – Czar

+0

colvalue в этом примере является псевдонимом. Он также может быть написан с помощью AS: «SELECT column AS column_alias FROM table» – Arno

+0

@Czar, как сказал Арно, 'colvalue' - просто псевдоним этого столбца. – Viki888

Смежные вопросы