PDA

View Full Version : My ( Nightmare ) SQL



crazy-mike
02-26-2015, 10:15 AM
Наверное так. Хотя вполне вероятно , что MS SQL в этом отношении ничуть не лучше.
:101:
Вообще-то этот MySQL 5.5 как бы даже намного улучшился по сравнению с MySQL 4.01 , например. Но тем не менее если начинаешь его пытаться "использовать по полной" - тогда время от времени происходят забавные вещи.

:101:
Сегодня мне понравилось как оно не смогло правильно выполнить запрос:

select * from items where item_id in (select id from phones where phone_number like '%20%' )

но зато запрос

select * from items where item_id in (select id from phones where locate('20',phone_number)>0)

эта зараза выполнила нормально!!!!!!!!!!!!!!!

phone_number - это как бы varchar(64), id - ключ совпадающий по значению с item_id в Items

смешно
02-27-2015, 07:37 PM
select items.*
from items, phones
where item_id = id
and locate('20', phone_number ) > 0

wlass
02-27-2015, 11:39 PM
Майк, как тебе этот MY SQL по сравнению с Firebird? Стоит переходить?

crazy-mike
02-28-2015, 01:50 AM
Майк, как тебе этот MY SQL по сравнению с Firebird? Стоит переходить?

Я вообще Firebird не пробовал. Просто провайдеры на бесплатных хостингах всем "втюхивают" MySQL. Даже PostgreSQL намного реже.

У MySQL единственная сильная сторона - API для всего подряд ( хоть для C, хоть для Perl , хоть для php ).

crazy-mike
02-28-2015, 01:54 AM
select items.*
from items, phones
where item_id = id
and locate('20', phone_number ) > 0

Мне интереснее почему там like не работает , а не всякие варианты left join. ( В PostgreSQL вообще оптимизатор запросов всё в JOIN преобразовывал автоматически ).