Mysql
 sql >> база данни >  >> RDS >> Mysql

Избиране на произволни думи от таблицата

Можете да добавите колона, напр. word_length който съдържа дължината на думата и добавете индекс към word_length колона. Обикновено би било лош дизайн да се включат данни, които могат да бъдат извлечени от друга колона, но в този случай трябва да нарушите чистотата в името на производителността. Тогава вашата заявка може да използва JOIN условие с помощта на тази колона:

SELECT CONCAT(w1.my_word, w2.my_word) joined
FROM my_words w1
JOIN my_words w2 ON w1.word_length = 8 - w2.word_length
WHERE w2.word_length < 8
ORDER BY RAND()
LIMIT 5

Можете да използвате INSERT и UPDATE тригери за попълване на word_length колона автоматично.

Може също да е полезно да направите конкатенацията след филтриране до 5-те реда:

SELECT CONCAT(word1, word2) joined
FROM (
    SELECT w1.my_word word1, w2.my_word word2
    FROM my_words w1
    JOIN my_words w2 ON w1.word_length = 8 - w2.word_length
    WHERE w2.word_length < 8
    ORDER BY RAND()
    LIMIT 5) x


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Полезен PHP клас база данни

  2. php връща недефинирано свойство

  3. получаване на стойността на допълнителна колона на централна таблица laravel

  4. Проектиране на нормализирана база данни за получаване на 5 най-близки съседи с помощта на MySQL пространствен индекс

  5. Yii2 и съхраняване на данни в базата данни като UTC