Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: MySQL выборка.
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » MySQL выборка.

Страниц (1): [1]
 

1. sweb - 06 Октября, 2011 - 13:31:09 - перейти к сообщению
Всем привет!
Вообщем проблема с выборкой из БД, никак не могу найти решение.
Запрос который я использую в общих чертах такой:
SELECT col1,col2,col3 ... FROM table WHERE col1=$1 OR col2=$1

Он возвращяет результат при col1 или col2 равном $1

А мне нужно что бы при условии что если нет col1 равного $1 выбрать col2 равный $1, а если есть col1 равный $1 то отбросить условие col2=$1
2. JohnnyB - 06 Октября, 2011 - 13:37:34 - перейти к сообщению
на твой содержательный запрос надо вот так выборку делать:
а потом в html
3. sweb - 06 Октября, 2011 - 13:45:01 - перейти к сообщению
JohnnyB пишет:
на твой содержательный запрос надо вот так выборку делать:
а потом в html
Сори я шифт прожал с Enter случайно и сообщение отправилосьНедовольство, огорчение
4. snikers987 - 06 Октября, 2011 - 14:01:16 - перейти к сообщению
а что мешает выбрать и то и другое, а потом проверить?
5. sweb - 06 Октября, 2011 - 14:03:49 - перейти к сообщению
snikers987 пишет:
а что мешает выбрать и то и другое, а потом проверить?
Впринципе ничто...Но мне все таки интересно как это реализовать.
6. snikers987 - 06 Октября, 2011 - 14:18:41 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1.   SELECT col1,col2,col3 ... FROM TABLE WHERE col1=$1 OR col2=$1


тут ты проводиш выборку полей col1, col2, col3 из строк в которых либо col1 либо col2 равно $1,
то что ты хочеш одним запросом врядли реализуемо.
7. MrBeard - 06 Октября, 2011 - 14:24:29 - перейти к сообщению
тоже не знаю, возможно ли. если не ошибаюсь, проверить существование результата можно только ПОСЛЕ отработанного запроса. так что, как мне кажется, придётся делать в два запроса с условием либо в PHP, либо в процедуре
8. sweb - 06 Октября, 2011 - 14:26:35 - перейти к сообщению
snikers987 пишет:
CODE (SQL):
скопировать код в буфер обмена
  1.   SELECT col1,col2,col3 ... FROM TABLE WHERE col1=$1 OR col2=$1


тут ты проводиш выборку полей col1, col2, col3 из строк в которых либо col1 либо col2 равно $1,
то что ты хочеш одним запросом врядли реализуемо.
Я думаю реализовать возможно, только вот встанет вопрос о целесообразности использования этой реализации с точки зрения производительности...
9. Socengel - 09 Октября, 2011 - 18:36:26 - перейти к сообщению
опиши что тебе нужно сделать поподробнее, наверняка у тебя просто сама схема базы данных не рациональна. хранение данных тоже целая наука и судя по таким вопросам у тебя изначально база данных построена не лучшим образом.

 

Powered by ExBB FM 1.0 RC1