Я сейчас почти не создаю новых проектов с нуля - и по-своему это хорошо - потому что разбирание чужого кода дает много новых знаний - ну или же просто напоминает о том, как делать все-таки не нужно
Одна из таких явных тем - это то как программисты извращаются с казалось бы простыми вещами. Этот пост про извращения с логическим типом в MySQL.
Очень часто вижу что-то в этом районе:
$sql = "
SELECT
*
FROM
users
WHERE
1=1 ";
ну а дальше, в зависимости скажем от фильтров идет достраивание запроса:
if($filter_name) $sql .= " AND name='$filter_name' " ;
if($filter_country) $sql .= " AND country='$filter_country' " ;
...
Сколько раз в жизни я видел конструкции 1=1 (варианты 1>0, 2<>3 и т.п.) просто не сосчитать. На самом же деле так извращаться вовсе не обязательно. Реализация SQL в MySQL - это полноценный язык программирования - и то что php ставит ограничения в 1 запрос за 1 запрос (сори за каламбур) - вовсе не означает что это язык с 4-мя конструкциями select, update, delete, insert
В нем тоже все есть - и циклы, и функции/процедуры, и рекурсия, и переменные - и очень много чего еще, включая и булеановский тип. И есть он во всех версиях
Поэтому, не надо мучать несчастную базу - нафиг 1=1 - напиши true