2013-06-11 2 views
1

Поддерживает ли Informix короткое замыкание в предложении SQL? Например:Короткое замыкание в Informix SQL

SELECT * FROM myTable 
WHERE '0' IN (listOfValues) OR myTable.code IN (listOfValues) 

где listOfValues ​​ представляет собой список кодов, указанного пользователем (где «0» означает, что все коды).

Большое спасибо!

ответ

1

Ну, да и нет.

Это зависит от того, как вы строите listOfValues. Вы не можете использовать заполнитель для ? для переменной списка, но вы действительно можете написать этот SQL из длинной руки, и он будет анализировать и делать то, что вы хотите. И вы можете назвать это короткозамкнутым, если хотите.

SELECT * FROM myTable 
WHERE '0' IN ('0') OR myTable.code IN ('0') 

будет делать то, что вам нужно. Но подготовка

SELECT * FROM myTable 
WHERE '0' IN (?) OR myTable.code IN (?) 

и выполнение его с переменными связывания, указывающими на списки, приведет к ошибке во время выполнения.

Все, что нужно использовать переменные связывания, по-прежнему применяются, вам просто нужно найти другой способ для подтверждения (подтверждения) ваших входов.

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