|
|
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Подскажите советом, необходимо искать в таблице слова, в каждой строке одно слово, в итоге получать id, но выдача должна быть рандомная и в количестве 5 штук. Чтоб при одном и том же поисковом запросе, выдавало разные id. Таблица имеет такой вид id | value 1 | Бордовый 2 | Серый Запрос делаю таким Код: sql 1. Он выдает постоянно одни и те же результаты, делаю так Код: sql 1. Выдает ерунду Надеюсь понятно объяснил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 08:58 |
|
||
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
ldarВыдает ерунду Надеюсь понятно объяснил Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Вот так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 09:11 |
|
||
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
AkinaldarВыдает ерунду Надеюсь понятно объяснил Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Вот так? Упс, этот запрос отрабатывает ...Тогда сознаюсь, в действительности таблица немного другая, здесь я ее упростил думал что проблема именно в этом. Вот как на самом деле необходим вытаскивать товар, который попадает по 3 типам, к примеру type=1 value= Синий type=2 value= Женский type=3 value= Зима на выходе получить id_item вот запрос, который правильно отрабатывает Код: sql 1. 2. Делаю так Код: sql 1. 2. выдает ерунду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 09:36 |
|
||
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
offer_id в запросе, это id_item в таблице, поторопился.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 09:39 |
|
||
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
250 сообщений, и всё никак не можешь понять, что выражения типа "выдаёт ерунду" следует оставить для посиделок с пивком на скамейке, а на форуме точно цитировать текст ошибки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 09:55 |
|
||
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
Akina250 сообщений, и всё никак не можешь понять, что выражения типа "выдаёт ерунду" следует оставить для посиделок с пивком на скамейке, а на форуме точно цитировать текст ошибки? Извиняюсь, выдает результат не тот который я хочу Вот запрос который сейчас работает Код: sql 1. 2. Выдает "offer_id" "value""115397" "Бордовый""115856" "Бордовый""116042" "Бордовый""117310" "Бордовый""118461" "Бордовый" Вот с рандомом, который выдает "ерунду" Код: sql 1. 2. Результат "offer_id" "value""143315" "Сине-Зеленый""135338" "Персиковый""134536" "Серый""126127" "Черный""155139" "Песочный" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 10:05 |
|
||
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
Ну и правильно выдаёт. Хотя бы потому, что MATCH..AGAINST должен быть в секции WHERE, а не в секции HAVING... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 10:15 |
|
||
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
AkinaНу и правильно выдаёт. Хотя бы потому, что MATCH..AGAINST должен быть в секции WHERE, а не в секции HAVING... написал вот такой запрос Код: sql 1. Запрос стал медленным, 2 сек Explain id ; select_type ; table ; type ; possible_keys ; key ; key_len ; ref ; rows ; Extra 1 ; SIMPLE ; t0 ; fulltext ; offer_id value_text ; value_text ; 0 ;\N; 1 ; Using where; Using temporary; Using filesort ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 10:35 |
|
||
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
ldarЗапрос стал медленным, 2 сек Результат стал правильным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 10:55 |
|
||
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
AkinaldarЗапрос стал медленным, 2 сек Результат стал правильным? Да, правильным. А как лучше ускорить его? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 10:58 |
|
||
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
ldarкак лучше ускорить его? Ну для начала, наверное, заменить полнотекст на прямой отбор. И создать индекс, который позволит выполнять фильтрацию и группировку по индексу. А дальше, после группировки, уже оптимизировать собсно нечего. Using temporary; Using filesort неизбежны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 11:12 |
|
||
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
Akinaldarкак лучше ускорить его? Ну для начала, наверное, заменить полнотекст на прямой отбор. И создать индекс, который позволит выполнять фильтрацию и группировку по индексу. А дальше, после группировки, уже оптимизировать собсно нечего. Using temporary; Using filesort неизбежны. Прямой отбор да, улучшил результат, но мне все таки нужно будет использовать полнотекст т.к. текст может содержаться в разных регистрах, как в базе так и в запросе. Эта база досталась мне от прошлого программиста. Насчет индексов, у меня стоит индекс на каждое поле и explain показал, что их использует. А как можно здесь использовать temporary, что в нем хранить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 12:38 |
|
||
|
Поиск в случайном порядке
|
|||
|---|---|---|---|
|
#18+
ldarмне все таки нужно будет использовать полнотекст т.к. текст может содержаться в разных регистрах, как в базе так и в запросе А, может, разумнее почитать мануал на предмет того, за каким хреном существует слово Collation? ldarу меня стоит индекс на каждое поле и explain показал, что их использует. Не "их", а "один из них". Ибо несколько индексов одновременно (пока) MySQL использовать вроде как не научился. Так что надо не дохрена по отдельности индексированных полей, а один составной индекс по делу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 12:42 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=47&tid=1832325]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 488ms |

| 0 / 0 |
