2016-01-13 2 views
-1

Как выбрать и заказать все результаты, начинающиеся с LIKE 'a%, а затем содержит LIKE '%a%' с лимитом, например. 3.Запрос на заказ Mysql начинается с:

Например, следующий набор данных: b, aab, baa, cad, ccc, bb, ac. Желаемый результат - получить aab, ac, baa. (. Если предел 2, никакие пункты для содержит не должен быть возвращен)

+3

почему результат BAA хорошо, но хам нет? – Clay

+0

SELECT * from table WHERE column like any ('{"% a%", "a%"}'); – Raviteja

+1

@ChrisBanks Результат baa в порядке, caa также имеет значение, но из-за предела 3 это не должно быть в желаемом результате из-за заказа. –

ответ

0

В вашем конкретном случае это работает:

SELECT Column1 
FROM table1 
WHERE (Column1 LIKE 'a%' OR Column1 LIKE '%a%') 
ORDER BY Column1 
LIMIT 3 

Случай ниже должен работать, замените table1 и Column1 для настоящих имен, и попробуйте Limit 2 и Limit 3. Этот случай полезно, когда a может быть yourcustomstring тоже:

SELECT Column1 
FROM (
    SELECT Column1 
    FROM table1 
    WHERE Column1 LIKE 'a%' 
    ORDER BY Column1 
) T1 
UNION 
SELECT Column1 FROM 
(
    SELECT Column1 
    FROM table1 
    WHERE Column1 LIKE '%a%' 
    ORDER BY Column1 
) T2 
LIMIT 3 

Рабочий пример:

SELECT * 
    FROM (
     SELECT YourTableAsUnion.Column1 
     FROM (SELECT 'b' AS Column1 
     UNION 
     SELECT 'aab' 
     UNION 
     SELECT 'baa' 
     UNION 
     SELECT 'cad' 
     UNION 
     SELECT 'ccc' 
     UNION 
     SELECT 'bb' 
     UNION 
     SELECT 'ac' 
     ) YourTableAsUnion 
     WHERE YourTableAsUnion.Column1 LIKE 'a%' 
     ORDER BY YourTableAsUnion.Column1 
    ) T1 
    UNION SELECT * FROM (
     SELECT YourTableAsUnion.Column1 
     FROM (SELECT 'b' AS Column1 
     UNION 
     SELECT 'aab' 
     UNION 
     SELECT 'baa' 
     UNION 
     SELECT 'cad' 
     UNION 
     SELECT 'ccc' 
     UNION 
     SELECT 'bb' 
     UNION 
     SELECT 'ac' 
     ) YourTableAsUnion 
     WHERE YourTableAsUnion.Column1 LIKE '%a%' 
     ORDER BY YourTableAsUnion.Column1 
    ) T2 
    LIMIT 3 
Смежные вопросы