palladium
8.04.2013 - 11:19
Народ, подскажите как написать скрипт для поиска "наилучшей строки" в базе данных. Например есть строки:
id who
1 РВТУРФУ
2 ВОЫТУ
3 РВ
4 РВТУРФУЛ
Ищем значение РВТУРФУЛРЫТЦ
Надо просканить таблицу и найти наиболее совпадающее значение и вернуть его id для дальнейшего использования.
полнотекстовый поиск, релевантность, гугл
_____________
Стимулятор ~yoomoney - 41001303250491
palladium
8.04.2013 - 12:37
% - штука известная.
Можно ссылку на статью какую-нить полезную? В Интернете информации куча, но не могу найти то что надо. Вообще будет очень похоже на телефонную книгу. поиск номера и вывод владельца из другой таблицы.
palladium
15.04.2013 - 22:32
Может кто поможет?
Денежку на телефон кину!
palladium
18.04.2013 - 13:17
Народ, вот конкретней задача:
Есть таблица из 4 столбцов,
База "basa1" таблица "main"
id who where number
0 stat112 Russia 1
1 stat214 USA 2
2 stat1123 Norway 3
3 stat11 Finland 4
4 stat21 Russia 5
в другой таблице "basa1" "main2"
id number balance
0 1 23$
1 2 21$
2 3 (1,5$)
3 4 14$
4 5 0,3$
Надо сделать такой запрос: stat112412 и в этой таблице найти наиболее совпадающий: stat112 в первой таблице, далее в соответствии с ассоциацией в столбце number во второй таблице вывести значение balance. таблица на выводе такая:
who where balance
stat112 Russia 23$
Заранее благодарю кто поможет!
DedMorozzz
18.04.2013 - 13:27
Ну есть же гугл. Сперва учимся им пользоваться, далее будет проще разбираться с другими задачами.
http://stackoverflow.com/questions/1368716...matching-stringSELECT DISTINCT name
FROM myTable
WHERE name LIKE CASE
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'S%') THEN '%'
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'St%') THEN 'S%'
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'Sta%') THEN 'St%'
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'Stac%') THEN 'Sta%'
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'Stack%') THEN 'Stac%'
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'StackO%') THEN 'Stack%'
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'StackOv%') THEN 'StackO%'
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'StackOve%') THEN 'StackOv%'
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'StackOver%') THEN 'StackOve%'
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'StackOverf%') THEN 'StackOver%'
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'StackOverfl%') THEN 'StackOverf%'
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'StackOverflo%') THEN 'StackOverfl%'
WHEN NOT EXISTS(SELECT * FROM myTable WHERE name LIKE 'StackOverflow%') THEN 'StackOverflo%'
ELSE 'StackOverflow%'
END
А выборка через джоины делается
Цитата |
Денежку на телефон кину! |
Это по желанию. Номер вебмани держи - R398633093363
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.