Задавайте вопросы, мы ответим
Вы не зашли.
Как можно сделать такой запрос
SELECT * FROM `table` WHERE `a` = любое_значение AND `b` = '...'
чтобы выбрались значения с любым a.
p.s. убрать "`a` = любое_значение" не предлагать
заранее спасибо
Неактивен
Если запрос модифицировать нельзя, то никак.
Если можно, то что-нибудь вида "(`a` = 'любое_значение' OR 1) AND `b` = '...'" или "`a` LIKE '*'" (если поле a строка), или убрать "`a` = 'любое_значение'"
Неактивен
Если это задачка типа олимпиадных, то можно
SELECT *, 'anyvalue' AS a FROM tablename WHERE a = 'anyvalue'
Неактивен
спасибо, легче уже убрать
Неактивен
Ну а так?:
SELECT * FROM table WHERE a = а
P.S. А если а=NULL прокатит?
Отредактированно vaspet (04.11.2010 14:45:01)
Неактивен
Круто, вариант с a=a мне еще больше нравится
C NULL, очевидно, не прокатит:
[celestia] root (none) > SELECT NULL = NULL; +-------------+ | NULL = NULL | +-------------+ | NULL | +-------------+ 1 row in set (0.00 sec)
Неактивен
Зарегился спецом чтобы на вопрос ответить )) может еще кому пригодится
vvsh написал:
Как можно сделать такой запрос
SELECT * FROM `table` WHERE `a` = любое_значение AND `b` = '...'
чтобы выбрались значения с любым a.
p.s. убрать "`a` = любое_значение" не предлагать
заранее спасибо
Правильный ответ:
SELECT * FROM `table` WHERE `a` LIKE '%' AND `b` LIKE '...'
"%" - означает любое кол-во любых символов, т.е. любое значение
Неактивен
R.Sergey написал:
Зарегился спецом чтобы на вопрос ответить )) может еще кому пригодится
vvsh написал:
Как можно сделать такой запрос
SELECT * FROM `table` WHERE `a` = любое_значение AND `b` = '...'
чтобы выбрались значения с любым a.
p.s. убрать "`a` = любое_значение" не предлагать
заранее спасибоПравильный ответ:
SELECT * FROM `table` WHERE `a` LIKE '%' AND `b` LIKE '...'
"%" - означает любое кол-во любых символов, т.е. любое значение
Зарегистрировался специально, чтобы сказать Вам спасибо. Мне очень помогло. Хоть Вы скорее всего и не узнаете об этом )
Неактивен
Зарегистрировался специально)))
Уточнение его лучше немного модернизировать, ибо отсекает NULL значения:
DECLARE @VALUE varchar(max)
SET @VALUE = isnull(@VALUE, '%')
SELECT * FROM `table` WHERE ( @VALUE= '%' OR `a` LIKE @VALUE) AND `b` LIKE '...'
так получится и NULL значения учитываются, а если @VALUE имеет значение отличное от '%' тогда поиск по полю `а`.
Неактивен