Помогите с mySQL запросом :(

MJ
На сайте с 29.12.2009
Offline
44
602

Здравствуйте ! Есть mysql запрос:

$favc = $db->super_query("SELECT count(*) as c FROM ".USERPREFIX."_users WHERE favorites REGEXP '[[:<:]]{$row['id']}[[:>:]]'");

Есть таблица favorites и favorites2, так вот, мне нужно чтобы если значение favorites пустое, то бралось значение favorites2. Это возможно сделать ?

Параметр AND или OR не помогает. В mysql и php я новичек.

Помогите пожалуйста. :(

ДП
На сайте с 23.11.2009
Offline
203
#1

Судя по запросу у вас поля favorites и favorites2.

И опять же, судя по запросу вы выбираете количество, поэтому что-то типа такого должно быть:


$favc = $db->super_query("SELECT count(*) as c FROM ".USERPREFIX."_users WHERE favorites REGEXP '[[:<:]]{$row['id']}[[:>:]]' OR favorites2 REGEXP '[[:<:]]{$row['id']}[[:>:]]'");
MJ
На сайте с 29.12.2009
Offline
44
#2

Дикий пионер, огромное спасибо ! То что нужно ! Скажите, а если еще делать выборку с поля favorites3, можно просто дописать?

favorites3 REGEXP '[[:<:]]{$row['id']}[[:>:]]'

и будет выполняться выборка только с того поля которое заполнено ?

siv1987
На сайте с 02.04.2009
Offline
427
#3
MusicJam:
REGEXP '[[:<:]]{$row['id']}[[:>:]]'

Какой разделитель у вас используется? Почему бы не юзать FIND_IN_SET?

domen4you
На сайте с 08.03.2013
Offline
53
#4

вижу гармошки вместо кода

ДП
На сайте с 23.11.2009
Offline
203
#5
MusicJam:
Дикий пионер, огромное спасибо ! То что нужно ! Скажите, а если еще делать выборку с поля favorites3, можно просто дописать?
и будет выполняться выборка только с того поля которое заполнено ?

В принципе да, только OR не забудьте.

На самом деле будет выбираться строка, где условие подходит либо к одному или ко второму полю. Но поскольку вам надо посчитать количество и неважно в каком из полей был найден результат, то можно просто через OR условия добавлять.

MJ
На сайте с 29.12.2009
Offline
44
#6
Дикий пионер:
В принципе да, только OR не забудьте.
На самом деле будет выбираться строка, где условие подходит либо к одному или ко второму полю. Но поскольку вам надо посчитать количество и неважно в каком из полей был найден результат, то можно просто через OR условия добавлять.

Большое спасибо ! :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий