MYSQL где х во всех

0

Я запускаю такой запрос

SELECT .......  WHERE column_name IN (1,2,3)

Как я могу использовать один и тот же запрос и скажу

SELECT ........WHERE column_name IN (*)

и выберите все строки?

Изменить: Причина, по которой мне нужно это сделать, - это плохой дизайн базы данных и плохое кодирование в целом, теперь мне нужно ее взломать. Если я не передам запрос 1,2,3.. Мне нужно передать ему что-то, чтобы он возвратил мне все записи. Есть ли способ сделать это без изменения запроса? Если вы не думаете, что это возможно, вы должны сказать, что это невозможно в вашем ответе.

  • 2
    Просто опустите WHERE .
  • 0
    WHERE column_name NOT IN (-1), если вы знаете, что значения не могут быть меньше 0, и вам все еще нужно предложение WHERE
Показать ещё 1 комментарий
Теги:

4 ответа

3

Просто удалите предложение WHERE alltogether.

  • 0
    не могу сделать это, используя только один запрос и передав его 1,2,3,4 ... или, если 0, я хочу все
  • 0
    Что вы можете изменить? Только параметр?
Показать ещё 2 комментария
1

Если вы абсолютно должны иметь предложение WHERE, вы можете сказать:

WHERE 1

Или, если вам нужно сделать бит column_name IN, вы можете сделать что-то вроде:

SELECT .......  WHERE column_name IN (1,2,3) OR 1
  • 0
    +1, так как это был бы мой ответ, если OP не может удалить предложение where, но может что-то добавить к нему. В зависимости от того, как он будет добавлен, OP должен очень осторожно относиться к SQL-инъекции.
1

... IN (SELECT DISTINCT column_name FROM table) ...

  • 0
    Не очень хорошая техника, но, кажется, мой друг, ты ответил на вопрос
  • 0
    Техника отстой :) но, как вы сказали, я просто хотел дать ответ на точный вопрос. Мне никогда не приходилось вводить SQL-код моего собственного кода ...
0

Если вы пытаетесь отфильтровать таблицу возвращаемых таблиц на значения в другой таблице:

выберите column_1, column_2 из таблицы_1 где column_1 IN (выберите column_with_value из tabl_2)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню