我們如何設置結果的模式,以便選擇或保存在變量中。MYSQL order by - follow a pattern
所以基本上當我選擇數據時,它是按如下順序排列的。
customer ID Email
1 [email protected]
2 [email protected]
3 [email protected]
4 [email protected]
所以我想選擇表中的所有記錄!不過,我想訂購他們,使他們按照這個格式
customer ID Email
1 [email protected]
2 [email protected]
3 [email protected]
4 [email protected]
52 [email protected]
7 [email protected]
84 [email protected]
99 [email protected]
10 [email protected]
11 [email protected]
124 [email protected]
1321 [email protected]
那麼,怎樣才能設置我的查詢來獲取我的結果遵循類似的命令。我基本上想知道如何從我的數據庫中選擇(或處理一旦存儲的)數據以遵循特定模式。
編輯:
這是我努力的腳本,那麼部分工作,但數據不沾格局。
SELECT DISTINCT customer_id, email
FROM customer_1_tbl
WHERE customer_id IN (
SELECT cust.customer_id
FROM customer_1_binding_tbl AS cust
WHERE cust.mailinglist_id = '2') order by substring_index(email, '@', 1),
(case substring_index(email, '@', -1)
when ('gmail.com' or 'hotmail.com' or 'jednotavimperk.cz') then 1
when ('seznam.cz' or 'email.cz' or 'post.cz') then 2
when 'tiscali.cz' then 3
when ('centrum.cz' or 'atlas.cz' or 'volny.cz') then 4
else 999
end)
什麼是定義排序的模式? –
電子郵件域。例如第一個Gmail,雅虎,seznam ..然後重複,直到所有的電子郵件已經這樣訂購。 @GordonLinoff –
你可以使用MySQL [REGEXP](https://dev.mysql.com/doc/refman/5.1/en/regexp.html)exp:'HAVING email REGEXP'[az]'ORDER BY email DESC' – Alex