Никогда не использовал триггеры в mysql, поэтому и не подумал про этот вариант. Это, конечно, лучше чем просчитывать непосредственно в php, но хотелось бы не создавать дополнительного поля. За наводку спасибо, если не предложат чего лучше - то на этом и останавлюсь
littleguga: Таблица изображений
title | width | height
Таблица тегов
keyword | image_id
Таблица цветов
color(hex) | image_id
Нужно составить запрос на выборку всех изображений с названием "Девушка", тегом "море" и цветом, допустим, голубым. Несколько цветов/тегов не предусмотрено
Пока стоит так:
SELECT * FROM images WHERE title LIKE '%Девушка%' AND id IN(SELECT image_id FROM keywords WHERE keyword='море') AND id IN(SELECT image_id FROM colors WHERE color='0000ff')
Но подозреваю, что это слегка не быстро)
Ihor Kalashnikov: Это ясно, предпологалось же создавать новую базу с уже уникальным данными, а там этот DISTINCT не нужен. Впрочем спасибо, с одной базой меньше гемора.
Пожалуй стоит уточнить вопрос. Сейчас запрос вида: "SELECT DISTINCT keyword FROM keywords WHERE keyword LIKE '5507%'"
Я не знаю что из себя представляет индекс мускуля. Предпологаю, что это keyword offset, offset, offset.. Так ли это(в упрощенной форме)? Меня просто DISTINCT смущает. Мне кажется, что он отжирает много процессорного времени, но выходит, что в случае с индексом, этого не происходит?
Странная вещь: те файлы, где я выставил данную опцию, открываются не в "Plain Text", а в "Note". Для всех же остальных файлов без расширения по прежнему "Plain Text".
Дмитрий: Я тоже только что поменял) Просто файлов много. Понимаю, что можно программно всё сделать, но я искал причину почему так, а это костыль выходит.
Те символы, что на изображении, не копируются. При сохранение файла в программе пишет Unicode. При открытии файла libroffice'ом, напротив Character set также стоит Unicode(не UTF-7 или 8). Довольно странно, насколько я знаю, unicode не кодировка, а стандарт.