- 1
- 2
- 3
- 4
- 5
$query = $sql -> query("SELECT *, COUNT(`id`) as count FROM `d_download` WHERE `id` = '{$id}'", true);
if($query['count'] == 1) {
// code
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−163
$query = $sql -> query("SELECT *, COUNT(`id`) as count FROM `d_download` WHERE `id` = '{$id}'", true);
if($query['count'] == 1) {
// code
}
Проверка, что значение найдено.
DBdev 11.04.2013 17:24 # +4
Moar all columns!!!111
anonimb84a2f6fd141 16.04.2013 01:13 # −5
eth0 11.04.2013 19:46 # +1
taburetka 11.04.2013 20:00 # 0
bot 11.04.2013 21:11 # 0
> , true);
Возможно тут. Ну или в каждой результирующей строке.
eth0 13.04.2013 11:35 # 0
Остаются некоторые сомнения в его правильности, поскольку все поля из *, кроме id (и, соответственно, count) будут заполнены значениями из первой произвольно выбранной строки. Такие дела.
bormand 13.04.2013 11:59 # +2
Это багофича мускуля. Слава богу, что отключаемая. Позволяет выбирать какое-попало значение для полей, которые не входят ни в агрегатные функции, ни в список полей для группировки.
The server is free to choose any value from each group, so unless they are the same, the values chosen are indeterminate.
To disable the MySQL GROUP BY extension, enable the ONLY_FULL_GROUP_BY SQL mode.
http://dev.mysql.com/doc/refman/5.0/en/group-by-extensions.html
eth0 13.04.2013 18:46 # 0
bormand 13.04.2013 18:59 # 0
bormand 13.04.2013 12:13 # +2
А вот походу это не проверка на существование записи, а проверка на ее существование и единственность. Кому-то было лень написать функцию, которая выполнит запрос и попробует сделать два фетча вместо одного, чтобы убедиться в том, что запись только одна, вот он и воспользовался этим грязным СУБД-зависимым хаком...