2014-10-10 4 views
1

Добрый день, ребята, я бы хотел теоретически построить нечто подобное.Использование подстановочного знака как самого значения?

col1 | col2 | col3 | col... % | A | 0.0 | ... 1 | % | 0.2 | ... % | % | % | ... % | B | 0.1 | ... 2 | % | 0.0 | ...

Так что, когда я запрашиваю это сказать ...

  • выбрать (col1) 1 + подстановочные значения, то возвращается строка 0, 1, 2, 3.
  • или для выбора (col1) 2 + подстановочные значения, он возвращает строку 0, 2, 3, 4.

Моя текущая работа вокруг является неаккуратно, где я использовать значение на дальнем конце типа данных, что и подстановочный знак р. Например, некоторые из этих столбцов MEDIUMINT UNSIGNED, поэтому я использую «16777215» в качестве значения подстановочного знака. И я использую запрос как ...

  • select * from TABLE where col1 IN (1, 16777215)
  • select * from TABLE where col1 IN (2, 16777215)

Но я знаю, что это очень грязный метод и я медленно приближаюсь к моей гибели, как там может быть вероятность того, что со временем фактическое значение может принять значение подстановочного знака.

Есть ли лучший способ приблизиться к этому? Любая форма совета или указателей на то, что читать, очень ценится. Спасибо.

Контекст: Для очень низкого уровня и свободного рисунка, соответствующего виду.

ответ

0

Вы можете использовать NULL как де-факто подстановочные значения:

select * from TABLE where col1 IN (2, 3, ...) OR col1 IS NULL 

Будьте осторожны, что это не имеет непреднамеренные побочные эффекты (например, получение в коде вызова в NullPointerException).

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