|
|
Возраст: 40 C нами с 01.10.2006 Репутация: 275
|
|
Подскажите, пожалуйста, как в MySQL сделать запрос выборки нечувствительным к регистру. К примеру, у меня есть запрос:
SELECT producerID FROM producers WHERE name_producer = "производитель"
Мне нужно, чтобы в базе данных отыскались записи с именем как "производитель", так и "ПРОИЗВОДИТЕЛЬ", а также "Производитель".
Заранее спасибо!
|
_____________________________ Написать неработающую программу легче, чем разобраться в работающей
|
|
|
|
|
|
|
Возраст: 36 C нами с 08.01.2006 Репутация: 128.1
|
|
Может быть стоит воспользоваться регулярками? Или я слышал о такой вещи как LIKE...погуглите
|
_____________________________ Unsort Yourself нафиг
|
|
|
|
|
|
|
Возраст: 40 C нами с 01.10.2006 Репутация: 275
|
|
Я бы погуглила, но у меня интернет помер сейчас - ну совершенно не вовремя, поэтому обратилась за советом на форум в локальной сети.
LIKE вместо "=" не помогает, возможно, к LIKE нужно что-то дописать, а что - я не знаю
|
_____________________________ Написать неработающую программу легче, чем разобраться в работающей
|
|
|
|
|
|
|
Возраст: 35 C нами с 04.02.2005 Репутация: 121.3
|
|
... WHERE LOWER(name_producer) = "производитель". Только не уверен, что будет работать с русскими буквами.
А еще можно отдельное поле в базе сделать, и в него складывать, например, варианты, состоящие только из строчных букв — select должен в этом случае работать быстрее.
|
|
|
|
|
|
|
|
Возраст: 40 C нами с 01.10.2006 Репутация: 275
|
|
chaser писал(а): |
... WHERE LOWER(name_producer) = "производитель".
|
Большое спасибо, помогло!
|
_____________________________ Написать неработающую программу легче, чем разобраться в работающей
|
|
|
|
|
|
|
Возраст: 40 C нами с 01.10.2006 Репутация: 275
|
|
Помогите, пожалуйста, с разрешением следующей проблемы.
Выгружаю русскоязычные данные из базы MySQL командой:
$out = mysql_query("SELECT IDpos, name_pos INTO OUTFILE 'result.txt' FROM `position`"); |
Далее файл 'result.txt' пытаюсь загрузить в базу:
$in = mysql_query("LOAD DATA INFILE 'result.txt' REPLACE INTO TABLE `position`"); |
После загрузки русскоязычные данные отображаются знаками вопроса. Подскажите, пожалуйста, что необходимо сделать, что данные "пришли" в базу в нужной (читаемой) кодировке?
Добавлено спустя 50 минут 1 секунду:
Проблему решила. После строки коннекта к базе данных указала следующее:
mysql_query ("set character_set_database='cp1251'"); |
Сработало!
|
_____________________________ Написать неработающую программу легче, чем разобраться в работающей
|
|
|
|
|
|
|
Возраст: 56 C нами с 19.09.2007 Репутация: 144
|
|
Svetic писал(а): |
chaser писал(а): |
... WHERE LOWER(name_producer) = "производитель".
|
Большое спасибо, помогло!
|
Я ораклист, но наверное мои замечания и для mySql подойдут:
Обычно делают WHERE UPPER(name_producer) = UPPER(переменная).
Почему UPPER а не LOWER не знаю, так исторически сложилось...
Но этот способ очень медленный из-за того, что из-за функции не применяются индексы. Запрос перелопачивает всю таблицу по порядку. Если она большая - времени сьедается много.
Для этого действительно, как говорилось раньше делают дополнительное поле в таблице(upper_name_producer), куда заранее складывают UPPER значение name_producer-a при создании записи. После чего делают дополнительный индекс по этому полю.
Запрос получается WHERE upper_name_producer=UPPER(переменная).
Теперь индексы работают и в десятки раз уменьшают время поиска...
Кстати, в зависимости от БД, и это не срабатывает.Тогда потребуется где-нибудь раньше преобразовать переменную в верхний регистр и только потом потставлять.
Теперь уж точно заработает.
|
|
|
|
|
|
|
|
Возраст: 34 C нами с 20.11.2006 Репутация: 106
|
|
Господа помогите пожалуйста, у меня имеется html скрипт в связке с css и js может мне ктонибудь помочь связать это дело с MySql что бы пользователи оставившие голоса больше не могли голосовать.
P.s. помогите пожалуйста. +1 с меня
|
123.zip - 2.75 Kб
Скачиваний: 18
|
|
|
|
|
|
|
Возраст: 99 C нами с 09.06.2007 Репутация: 245
|
|
хмм... разве это возможно??? ява выполняется на пк-клиенте, а не на сервере. тут, например, без пхп не обойтись. либо посылать из js в пхп, а пхп уже в Mysql. чтобы не могли голосовать, а кукисы тебе для этого дела не подходят?
тут варианты
|
|
|
|
|
|
|
|
Возраст: 44 C нами с 07.02.2005 Репутация: 122.9
|
|
Цитата: |
либо посылать из js в пхп, а пхп уже в Mysql
|
Это называется модным ныне словом AJAX. Подойдет тут любая серверная технология а не только php.
k2 а чем вам не нравится идея показать проголосовавшим результаты самого голосования? Тогда изначально страница придет другая и проблема отпадет сама собой
|
_____________________________ Chi wa mizu yori mo koshi
|
|
|
|
|
|
|
Возраст: 99 C нами с 09.06.2007 Репутация: 245
|
|
Знаю что оно есть, но не интересовался, не знаком =(
Dreamer писал(а): |
Подойдет тут любая серверная технология а не только php.
|
я ж написал "например" хотя правильней было конечно "любая серверная технология"
|
|
|
|
|
|
|
|
Возраст: 44 C нами с 07.02.2005 Репутация: 122.9
|
|
Reflection, AJAX это суть JavaScript с немного другим подходом к написанию скриптов. Ничего сложного там нету. Кстати в ASP.NET даже проще чем в php будет)
|
_____________________________ Chi wa mizu yori mo koshi
|
|
|
|
|
|
|
Возраст: 99 C нами с 09.06.2007 Репутация: 245
|
|
А кто-нибудь пробовал подключить базу в ibexpert ?
Там вроде можно подключать MySQL но толи я что-то не то вписываю в настройки , толи хз чего. вобще показывает ошибку.
|
|
|
|
|
|
|
|
Возраст: 37 C нами с 23.10.2005 Репутация: 38.9
|
|
Вот и мое время пришло просить помощи.
Вырезал из запроса простецкую вещь:
Запрос
SELECT * FROM `users_groups` WHERE `userg_id` IN (REPLACE(TRIM(' 1 2 3 4 5 '), ' ', ',')); |
Выбирает только первую запись с `userg_id` = 1
Хотя SELECT REPLACE(TRIM(' 1 2 3 4 5 '), ' ', ','); | отдает
Помогите пожалуйста выбрать все строчки .
|
|
|
|
|
|
|
|
Возраст: 99 C нами с 09.06.2007 Репутация: 245
|
|
Наверно он понимает что "1" это число ,а все остальное (,2,3,4,5)текст. О_о Чет странно.
|
|
|
|
|
|
|
|