"Условное условие" в MySQL
6863 сообщения
#14 лет назад
Цитата ("WebDesignStudio"):mysql_list_fields - список полей таблицы.
О, это для меня ново. Спасибо за наводку, буду вникать.
2989 сообщений
6 сообщений
#14 лет назад
Пример на MySQLSELECT * FROM `dle_post` WHERE IF((SELECT COUNT(*) FROM `information_schema`.`COLUMNS` WHERE `information_schema`.`COLUMNS`.`TABLE_NAME` = 'dle_post' AND `information_schema`.`COLUMNS`.`COLUMN_NAME` = 'autor' AND `information_schema`.`COLUMNS`.`TABLE_SCHEMA` = 'rabotnik_cdl'

где
rabotnik_cdl - имя бд
dle_post - имя таблицы
autor - имя колонки
Если условие IF выполняется (проверяем существует ли у такой бд и таблицы нужная колонка), тогда в WHERE идёт конструкция (`autor` <> 1), в противном случае - идёт конструкция (1) которая выполнится всегда.
Маразм, но автор такое хотел...
6863 сообщения
#14 лет назад
Для того, чтоб обратиться к information_schema нужно новое соединение создать, так ведь? фтопку

Ладно, ребят, всем спасибо, проехали. Оставила как было, убедили

6863 сообщения
#14 лет назад
Ну, это все равно еще один запрос. Я такой вариант рассматривала, только с запросом "Show full columns".
Но подумала, что скорее всего неопубликованных записей будет не больше 3-х процентов, поэтому взвалила это дело (проверку поля) на шаблонизатор.
Хотя неудобно, что в нескольких местах придется проверять.
Собственно, начались раздумья с того, что в шапку добавила пять последних загруженных картинок, а на следующий день заметила, что они выскакивают мимо премодерации (лоханулась).
Все-таки хочется упростить себе будущее. Но посылать ради этого лишний запрос?
Все-таки к лишнему полю во всех таблицах я больше склоняюсь.
87 сообщений
#14 лет назад
А заранее не известно количество и имена таблиц? Если таблицы создаются программно, может стоит их именам присвоить суффиксы или префиксы соответствующие. И на основании этого определять - есть ли в таблице поле и строить запрос.
3562 сообщения
#14 лет назад
Прекратите подметать ломом, это неудобно и не эффективно =)
6863 сообщения
#14 лет назад
Цитата ("segoddnja"):А заранее не известно количество и имена таблиц? Если таблицы создаются программно, может стоит их именам присвоить суффиксы или префиксы соответствующие. И на основании этого определять - есть ли в таблице поле и строить запрос.
Дело в том, что это не логично. Таблицы подобны и уже выделены среди других. Просто в одних нужна премодерация, а в других нет. И если учесть, что заказчику в любой момент может прийти в голову добавить премодерацию всюду, то Цитата ("floppox"):
Все-таки к лишнему полю во всех таблицах я больше склоняюсь.. Вот еще один аргумент только что нашла...