Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите составить простинький запрос / 10 сообщений из 10, страница 1 из 1
02.05.2005, 10:22
    #33044715
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить простинький запрос
select * from tbl where content like 'woRd'
Мне нужен такой-же запрос, но чтобы он возращал текст содержащий и Word и woRD и WoRd, т.е. не учитывал регистр!
...
Рейтинг: 0 / 0
02.05.2005, 11:19
    #33044728
ap99ap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить простинький запрос
Издеваешься?

Если поле content имеет символьный тип - сравнения будут регистронезависимые.
Если нет - приводишь поле к символьному: CAST( content AS CHAR ).
...
Рейтинг: 0 / 0
02.05.2005, 12:19
    #33044745
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить простинький запрос
Не издеваюсь, а делаю поиск по сайту на пхп и майскл!
content типа text
Как я понимаю, будет так?
select * fromtbl where cast(content) like cast('word')???
...
Рейтинг: 0 / 0
02.05.2005, 12:52
    #33044765
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить простинький запрос
SELECT * from tovar WHERE CAST( title AS CHAR ) like '$word'
SQL ошибок нет, но ничего не возращается, а с PHP вручную, возращается 20 результатов!
...
Рейтинг: 0 / 0
02.05.2005, 13:53
    #33044821
Never
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить простинький запрос
select * from table where upper(field) like '%WORD%'
...
Рейтинг: 0 / 0
02.05.2005, 16:06
    #33044915
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить простинький запрос
Спасибо, работает!
...
Рейтинг: 0 / 0
02.05.2005, 17:41
    #33044978
ap99ap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить простинький запрос
Ренат SELECT * from tovar WHERE CAST( title AS CHAR ) like '$word'
SQL ошибок нет, но ничего не возращается, а с PHP вручную, возращается 20 результатов!

Что у тебя за мускул?
Еще раз: все операции стравнения на текстовых полях не учитывают регистр.
Чтобы операции сравнения учитывали регистр, им нужно специально указывать 'binary' перед операцией.

А насчет "upper(txt) like 'SOME'", то глянув explain этого запроса ты увидишь, что мускул не использует индекс по полю txt. Это тебе не оракл, функциональных индексов тут нет.
...
Рейтинг: 0 / 0
02.05.2005, 17:52
    #33044987
ap99ap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить простинький запрос
ap99apА насчет "upper(txt) like 'SOME'", то глянув explain этого запроса ты увидишь, что мускул не использует индекс по полю txt. Это тебе не оракл, функциональных индексов тут нет.

Кстати, то же касается и cast(txt as char).
Вывод: меняй тьип столбца. Он у тебя, видимо, имеет тиб blob.
Поменяй на text или varchar и все будет в порядке.
...
Рейтинг: 0 / 0
02.05.2005, 19:23
    #33045055
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить простинький запрос
Точно text! А select * from table where upper(field) like '%WORD%' все хорошо пашет!
...
Рейтинг: 0 / 0
03.05.2005, 00:06
    #33045217
ap99ap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить простинький запрос
РенатТочно text! А select * from table where upper(field) like '%WORD%' все хорошо пашет!

Странные дела.

Открываем консоль, пишем:
create table t ( t text, index ( t(30) ) );
insert into t (t) values ('text'), ('Text'), ('TEXT');
select * from t where t like 't%';

получаем, как и следовало ожидать,
+------+
| t |
+------+
| text |
| Text |
| TEXT |
+------+

Теперь
explain select * from t where t like 't%';
+-------+-------+---------------+------+---------+------+------+-------------+
| table | type | possible_keys | key | key_len | ref | rows | Extra |
+-------+-------+---------------+------+---------+------+------+-------------+
| t | range | t | t | 33 | NULL | 2 | Using where |
+-------+-------+---------------+------+---------+------+------+-------------+

Так что вот так...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите составить простинький запрос / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]