簡體   English   中英

如果列是文本和數字,我如何從列值大於某個值的mysql表中選擇

[英]how can i select from a mysql table where column value is greater than some value if the column is text and numbers

我有一個名為“產品”的表,其中一列為“ SerialNumber”。 問題在於該列為文本latin1_swedish_ci,其值類似於“ BC00001,BC0002等。我需要選擇序列號大於某個給定序列號的所有產品。我嘗試選擇以下方式:

SELECT * FROM 'products' WHERE 'SerialNumber' >= 'BC00563' 

但是由於此列是文本,因此無法正常工作。 我無法修改表結構,因為此表已經有20.000條記錄。 任何幫助表示贊賞!

假設值始終是兩個字符后跟數字,則可以去除字符並將剩余的值轉換為number以進行比較,例如:

SELECT * 
FROM `products` 
WHERE `SerialNumber` >= 
    CASE WHEN 'BC00563' regexp '[A-Z]' THEN 
    CONVERT(SUBSTRING("BC00563", 3, LENGTH("BC00563")), UNSIGNED) 
    ELSE 'BC00563' END;

您可以使用列名代替常量值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM