Как правильно написать SQL запрос
Страницы: 1 2 След.
Как правильно написать SQL запрос, нужно найти запис в таблице в поле которого "1" но не как вхождение "1" в "11" к примеру
Есть записи с полем типа varchar, нужно сделать выборку  точного вхождения например 1 в поле но не как ни 11, 41, 121 и так далиЗаписи в полях имеют такой вид
1,45,67
89,11,90,50
4,14
412,10,9,89,63

пробовал LIKE %% но он выбирает все записи в которых попадается любое  вхождение искомого числа
WHERE имяполя='1'
Цитата
Олег Гречина пишет:
WHERE имяполя='1'
вы явно не поняли....

Цитата
maxon390 пишет:
412,10,9,89,63
Нужно перебивать данные... делать типа !1!,!22!,!11!,!89! и тд... а после этого у вас получится делать выборку like %!1!%. Помоему, здесь только такой выход...
Изменено: mons - 13 Июля 2012 13:49
заходишь на американский форум, задаешь вопрос, тебе объясняют, как ее решить
заходишь на еврейский, задаешь вопрос, тебе предлагают, купить решение за деньги
заходишь на русский форум, задаешь вопрос и тебе весь форум объясняет, что ты мудак
Цитата
mons пишет:
Нужно перебивать данные... делать типа !1!,!22!,!11!,!89! и тд... а после этого у вас получится делать выборку like %!1!%. Помоему, здесь только такой выход...
То есть использовать любые разделительные знаки, как бы обволакивая цифру!

Больше других способов нет?
Цитата
maxon390 пишет:
Цитата
mons пишет:
Нужно перебивать данные... делать типа !1!,!22!,!11!,!89! и тд... а после этого у вас получится делать выборку like %!1!%. Помоему, здесь только такой выход...
То есть использовать любые разделительные знаки, как бы обволакивая цифру!

Больше других способов нет?
Смотрите, оператор лайк ищет вхождение, символы % обрезают все слева и справа и в итоге получаем то, что искали, но результатов может быть много, вот поэтому прийдется "обволакивать" цифры, тогда получим точное вхождени данного символа.
Цитата
mons пишет:
Смотрите, оператор лайк ищет вхождение, символы % обрезают все слева и справа и в итоге получаем то, что искали, но результатов может быть много, вот поэтому прийдется "обволакивать" цифры, тогда получим точное вхождени данного символа.
А если так:
LIKE 28%

Что если в начале нет знака % то в искомом поле тоже не должно быть ничего быть, так?
Почитайте здесь, может поможет.

Функция


CREATE FUNCTION SPLIT_STR(x VARCHAR(255), delim VARCHAR(12), pos INT )
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');

Использование


SELECT SPLIT_STR(string, delimiter, position)

Пример


SELECT SPLIT_STR('a|bb|ccc|dd', '|', 3) as third;
Цитата
Jaguar пишет:
SELECT SPLIT_STR(string, delimiter, position)
Позиция заранее не известна:(, число может быть и в середине, в конце и в где нибуть в середине перечисления так что скорей всего не подходит

Почитав про LIKE пришол к выводу что можно сделать так
 
SELECT таблица WHERE поле LIKE число%,  LIKE %,число,%,  LIKE %,число
первый  LIKE ищет нет ли искомого числа в диапазоне на первой позициивторой LIKE ищет нет ли искомого числа в середине перечисления
третий LIKE в конце 

Ну как думаете сработает такая конструкция? Попробовать сейчас не могу так как на работе
Цитата
maxon390 пишет:
SELECT таблица WHERE поле LIKE число%, LIKE %,число,%, LIKE %,число
можно так попробывать : SELECT таблица WHERE поле LIKE число,% or LIKE %,число,% or LIKE %,число  но на 100% неуверен.
Цитата
mons пишет:
LIKE число,%
Вот именно и с первым числом наверное и будут проблемы, так как после него может и не быть комы то есть в поле может быть только одно число но тогда думаю мне нужно попробовать 
SELECT таблица WHERE поле LIKE число or LIKE число,% or LIKE %,число,% or LIKE %,число 

нужно будет попробовать когда домой прийду
Цитата
maxon390 пишет:
Позиция заранее не известна:(, число может быть и в середине, в конце и в где нибуть в середине перечисления так что скорей всего не подходит
Нужно проверить каждую позицию.
Цитата
Jaguar пишет:
Цитата
maxon390 пишет:
Позиция заранее не известна:(, число может быть и в середине, в конце и в где нибуть в середине перечисления так что скорей всего не подходит
Нужно проверить каждую позицию.
Я ж так сервер положу, пускай у меня сейчас 600 записей умножить на пускай 10 позиций в поле(чисел в поле) получается 6000 запросов чтобы загрузить одну страничку
Надо написать в одном запросе.
Цитата
Jaguar пишет:
Надо написать в одном запросе.
Приведи пример а то я не совсем понимаю как можно в одном запросе это сделать?
SELECT id,имя,год FROM фильмы WHERE flag_moderation=1 AND cast LIKE '$id,%' OR LIKE '%,$id,%' ORDER BY year DESC
пробовал и так
WHERE flag_moderation=1 AND (cast LIKE '$id,%' OR LIKE '%,$id,%') ORDER BY year DESC
Не хочет выборку делать:mad:

как правильно написать нигде не могу найти подобного условия
Страницы: 1 2 След.
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
14:22 Парсят сай до ddos 
15:05 Gambling Craft - гемблинг по белому 
16:02 DreamCash.tl - заработок на онлайн-видео. До 95% отчислений, отличный конверт! 
11:51 Ходяга(АнтиМинусинск) - программа для проклика ссылок, генерации поискового и соц.трафика, улучшения ПФ 
14:39 AviTool - мощный инструмент для автоматизации работы с Avito 
11:36 Dao.AD: Монетизация и покупка Push/Pops/Inpage и Video трафика! 
00:53 Доработка сайта 
08:55 Размещу ссылки/статьи на ваш сайт | Рост ИКС | XRumer 23.0.4 StrongAI 
04:19 Просто $0.04/IP 9PROXY.COM Резидентные прокси Неограниченная пропускная способность Уникальная политика замены Без чёрного списка 
16:21 Мобильные прокси Германия, Польша и Беларусь | БЕСПЛАТНЫЙ ТЕСТ | ЛУЧШИЕ ЦЕНЫ И УСЛОВИЯ 
12:06 BestX24 - быстрый и безопасный обменник криптовалют и электронных денежных средств 
11:28 ProtonPlus.co - выгодный и быстрый обмен, работаем круглосуточно 
20:12 Sectormoney.com - быстрый и удобный обменник 
19:47 24ATM - Мультивалютная платформа обмена цифровой валюты 
04:15 Точные прогнозы на футбол 
20:09 Сколько сейчас стоит наполнение ИМ? 
12:43 Куплю проигрышные букмекерские аккаунты 
04:33 Половина скидок на распродажах — фейк 
07:53 НейроБабушка наказывает мошенников 
19:59 Осталось 3-5 месяцев до блокировки YouTube в России, — заявил Клименко 
19:57 Пятница 13-ое: VK принял радикальное решение и закрыл доступ к порно контенту