|
|
|
Выбрать слова с нужным набором букв
|
|||
|---|---|---|---|
|
#18+
Уважаемые, разработчики!.. Не первый день ломаю голову над формированием запроса. Условия. Есть база данных слов. Выглядит так words { word_id , word} // id, слово words_weight {code, quantity, word_id} // код буквы, кол-во это буквы в слове, ид слова Пример. words word_id | word 1 | аббатство words_weight code | quantity | word_id 224 | 2 | 1 // буквы 'а' в слове с id = 1 (аббатство) 2 штуки. 225 | 2 | 1 // буквы 'б' в слове с id = 1 (аббатство) 2 штуки. 226 | 1 | 1 // буквы 'в' в слове с id = 1 (аббатство) 1 штука. 238 | 1 | 1 // буквы 'о' в слове с id = 1 (аббатство) 1 штука. 241 | 1 | 1 // буквы 'с' в слове с id = 1 (аббатство) 1 штука. 242 | 2 | 1 // буквы 'т' в слове с id = 1 (аббатство) 2 штуки. Задача. Написать запрос, формирующий выборку их тех букв, которые мы задали. Если расширить - не включать в запрос те буквы, которые мы исключили. К примеру - взять все слова, где не встречается мягкий знак, твердый знак, где две буквы 'а' и одна буква 'о'. Будьте добры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 22:30:36 |
|
||
|
Выбрать слова с нужным набором букв
|
|||
|---|---|---|---|
|
#18+
Это учебная задача? Если буква в слове не встречается, то в таблице будет запись с нулем или вообще не будет записи? Как вариант (если не будет записи): Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 22:44:24 |
|
||
|
Выбрать слова с нужным набором букв
|
|||
|---|---|---|---|
|
#18+
Не то. Я условие не совсем полно определил, видимо. Выборка идет из тех слов, где в одном конкретном слове присутствуют сразу две буквы 'а', одна буква 'о', отсутствуют 'ь' и 'ъ'. Пример - слово 'кашалот' (две 'а', одна 'о' и отсутствие мягкого и твердого знаков). Расширенная версия запроса предполагала бы выборку из слов, где букв от 1 до n. То есть - выбрать все слова, где буква 'а' встречается от 1 до 3 раз, буква 'о' единожды, и отсутствуют буквы мягкого и твердого знака. Все буквы в примерах взяты наобум. Могут быть любые буквы. А под Вашу выборку подпали слова, где либо две 'а', либо одна 'о', либо отсутствует мягкий знак, либо твердый знак. Да, слова, не подпадающие под условия выборки, не выводятся вовсе. P.S. Задача учебная наполовину. С одной стороны я подтягиваю Mysql, с другой стороны это не домашнее задание)).. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2013, 23:26:39 |
|
||
|
Выбрать слова с нужным набором букв
|
|||
|---|---|---|---|
|
#18+
HaybullaВыборка идет из тех слов, где в одном конкретном слове присутствуют сразу две буквы 'а', одна буква 'о', отсутствуют 'ь' и 'ъ'. Пример - слово 'кашалот' (две 'а', одна 'о' и отсутствие мягкого и твердого знаков). Расширенная версия запроса предполагала бы выборку из слов, где букв от 1 до n. То есть - выбрать все слова, где буква 'а' встречается от 1 до 3 раз, буква 'о' единожды, и отсутствуют буквы мягкого и твердого знака. Все буквы в примерах взяты наобум. Могут быть любые буквы. на реляционное деление похоже ... words word_idletterquantity1а21б11в11о11с11т12а22к12ш12л12о12ъ12т1 search lettermin_quantitymax_quantityа13о11ъ00ь00 Код: sql 1. 2. 3. 4. 5. Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 00:10:52 |
|
||
|
Выбрать слова с нужным набором букв
|
|||
|---|---|---|---|
|
#18+
джойн можно и inner fix qwerty112 Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 00:21:48 |
|
||
|
Выбрать слова с нужным набором букв
|
|||
|---|---|---|---|
|
#18+
HaybullaА под Вашу выборку подпали слова, где либо две 'а', либо одна 'о', либо отсутствует мягкий знак, либо твердый знак.Сорри, отвлекся, мысль ускакала, часть забыл. Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 00:25:41 |
|
||
|
Выбрать слова с нужным набором букв
|
|||
|---|---|---|---|
|
#18+
Конечно, вы правы, все это очень похоже на реляционное деление… Если не вспомнить простую вещь (идея не моя, просто реализация, увы) Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 00:48:32 |
|
||
|
Выбрать слова с нужным набором букв
|
|||
|---|---|---|---|
|
#18+
таки, без exists - никак ( Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 00:55:08 |
|
||
|
Выбрать слова с нужным набором букв
|
|||
|---|---|---|---|
|
#18+
Или, с учетом табличного задания требований, Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2013, 01:04:32 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38363892&tid=1836262]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 298ms |

| 0 / 0 |
