[英]MySQL Regexp won't work
我有以下查詢:
SELECT `admin_users`.*
FROM `admin_users`
WHERE (avatar REGEXP 'avatars/Name-[0-9]+.jpg+')
ORDER BY `admin_users`.`avatar`
DESC LIMIT 1
如果我有類似的東西也可以:
avatars/Name-5.jpg
avatars/Name-6.jpg
但是,如果有avatars/Name-15.jpg
,例如,它不會在查詢中返回。
換句話說,它僅適用於1位數,而不適用於更多位數。 我該如何解決?
比較字符串( avatar
是什么)時,“化身/名稱-1 ...”位於“化身/名稱-5 ...”之前,僅是因為字符串 “ 1”位於“ 5”之前。
用一個嵌入式數字對它們進行排序是不現實的。 這會做您想要的,但是很神秘:
ORDER BY 0 + MID(avatar, 14)
解釋
0+'abc'
將傳遞0
,因為abc
開頭沒有看起來像數字的東西。) 如果在所有情況下左側部分都不都是14個字符,則該技巧將失敗。 而且它可能變得如此復雜以至於在SQL中“不可能”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.