|
|
|
IF ELSE в MySQL
|
|||
|---|---|---|---|
|
#18+
Ни разу не сталкивался, подскажите возможно ли такое реализовать и как) есть 2 запроса Код: sql 1. 2. если первый запрос что то возвращает то то отдаем эту выборку, если же нет то выборку по второму запросу. Код: sql 1. 2. 3. что то типа такого? Или может сюда case как то прикрутить можно. И как будет оптимальней и быстрей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 21:59:30 |
|
||
|
IF ELSE в MySQL
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 23:16:11 |
|
||
|
IF ELSE в MySQL
|
|||
|---|---|---|---|
|
#18+
Akina, Поясните пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 23:21:53 |
|
||
|
IF ELSE в MySQL
|
|||
|---|---|---|---|
|
#18+
Akina, Разобрался. Спасибо большое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 00:19:53 |
|
||
|
IF ELSE в MySQL
|
|||
|---|---|---|---|
|
#18+
Еще варианты: Код: sql 1. 2. 3. Код: sql 1. 2. 3. 4. 5. Какой будет быстрее - сходу не скажу, надо пробовать. Разумеется, нужен индекс, начинающийся с поля name. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 00:34:29 |
|
||
|
IF ELSE в MySQL
|
|||
|---|---|---|---|
|
#18+
miksoft, подумалось: а никак нельзя в ваш юнион воткнуть SQL_CALC_FOUND_ROWS , а во второй части воспользоваться вызовом соответствующей функции? (честно - лень лезть в консоль) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 11:02:21 |
|
||
|
IF ELSE в MySQL
|
|||
|---|---|---|---|
|
#18+
Arhat109, насколько я понял из доки - нельзя. FOUND_ROWS() выдаст результат по предыдущему запросу, а не по предыдущей части UNION. Имхо, это лучше решать на клиенте. Если первая часть что-то вернула, то вторую часть просто не выполнять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 11:15:47 |
|
||
|
IF ELSE в MySQL
|
|||
|---|---|---|---|
|
#18+
miksoft, пасибки. Это понятно, про клиента... но раз автор вопрошает - почему бы и не поизголяться? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 11:17:59 |
|
||
|
IF ELSE в MySQL
|
|||
|---|---|---|---|
|
#18+
Логики выбора я лично не просек. Вы же не думаете что получите 66 тойот если у вас их всего 6, а в name "toyo". Ну на всякий случай воткните distinct select distinct * from table where name='temp' or name like '%temp%'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 07:38:58 |
|
||
|
IF ELSE в MySQL
|
|||
|---|---|---|---|
|
#18+
Там номера, например есть 513, а есть 25513, 1513 и т.д. Так вот если есть точное совпадение то остальные не нужны. А если нет, то типа возможно вы искали. Вариант Akina отлично справился с задачей. С быстродействием не знаю какой лучше конечно но на 2к записей этого и не заметишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 17:29:07 |
|
||
|
IF ELSE в MySQL
|
|||
|---|---|---|---|
|
#18+
SharuPoNemnoguВариант Akina отлично справился с задачей. С быстродействием не знаю какой лучшеМой вариант на самом деле содержит больше сарказма, чем смысла. Хоть и работает... просто сама постановка задачи малоосмысленная. Нет, я понимаю - если не нашли что надо, дадим хоть что-то... но на большой выборке сервер может не понять, что подзапрос независим. Более "правильным" я бы назвал вариант типа (syntax error! только идея) Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 18:18:59 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=47&tid=1835243]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 376ms |

| 0 / 0 |
