| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Условие в самом запросе |
| Автор: supercelt 1.2.2008, 14:26 | ||
Как написать? Вместо точек надо поставить такое условие: где City либо любое число, либо пустое поле HELP |
| Автор: merge 1.2.2008, 14:29 |
| City = 5 OR City is NULL |
| Автор: GeneralElectric 1.2.2008, 14:44 |
| supercelt, а что в поле может быть кроме числа и пустого значения? |
| Автор: MoLeX 1.2.2008, 14:46 |
а такое то есть всегда думал что WHERE |
| Автор: supercelt 1.2.2008, 14:56 |
| Знаю что WHERE, просто опечатка)), в поле может быть ещё вот что: Санкт-Петербург и тд. Merge, а почему ты пишешь, что City = 5. Там надо любое число. Главное что это число, а какое, не важно |
| Автор: GeneralElectric 1.2.2008, 15:03 |
| supercelt, а, может, лучше сделать так, чтобы там были только числа? тебе вообще этот запрос один раз нужен, или постоянно для работы приложения? Если для того, чтобы привести базу в нормальную форму, то можно как-то извратиться. А если так и пранируется все время делать, то лучше не стоит |
| Автор: supercelt 1.2.2008, 15:08 |
| Будет использоваться всего один раз. Просто базу надо поправить. В поле города, кое-где неверно записано. Там где числа и пустые, те надо вывести, что бы не выводить всё несколько тысяч строк. |
| Автор: bars80080 1.2.2008, 15:19 |
| если один раз, то может лучше вывести все, а затем проверить средствами пхп, типа is_numeric and empty ? |
| Автор: skyboy 1.2.2008, 15:22 | ||||
Можно воспользоваться оператором http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_regexp типа
только обрати внимание на примечание в мануале: регистрозависимая и проблема с многобайтными кодировками :( |
| Автор: skyboy 1.2.2008, 15:43 |
если резульатат выборки используется в качестве подзапроса и связывается по JOIN или используется в "IN ...", то вариант с передачей сервер-клиент-сервер двойная переброска будет тормозить. Сильно. Уж лучше привести(если есть) текст к однобайтной кодировке и воспользоваться REGEXP Добавлено через 1 минуту и 10 секунд или http://dev.mysql.com/doc/refman/5.1/en/adding-functions.html |
| Автор: supercelt 1.2.2008, 16:38 | ||
Не работает. Выводит все записи из базы |
| Автор: GeneralElectric 1.2.2008, 16:55 |
| а я бы написал City+1 > 1 |
| Автор: skyboy 1.2.2008, 17:00 |
среди этих "всех" есть те, которые не из чисел? кодировка в таблице какая? обращаю ещё раз внимание: |
| Автор: supercelt 1.2.2008, 17:32 |
| Выводит абсолютно всё.. Кодировка windows-1251 |