使用 sql 删除记录,如果它大于某个附加单位的数字(例如 3M 或 3cm)

Delete records using sql ,if it is greater than certain number with an unit attached to it (eg 3M or 3cm)

设 table 为 'hotel' ,列为 :

hotel_worth
15M
4M
8M
3M
1M
2M
11M

如何使用sql删除table中大于3M的记录。

DELETE 语句的 WHERE 子句中,您可以通过添加 0:

将字符串转换为数值
DELETE FROM hotel
WHERE hotel_worth + 0 > 3

如果只想删除后缀为 M 的行(如果还有其他后缀)添加:

AND RIGHT(hotel_worth, 1) = 'M'

这可以通过使用来完成:

DELETE FROM price 
WHERE SUBSTR(`hotel_worth`, 1, LENGTH(`hotel_worth`) - 1) + 0 > 3

解释:substr函数:

SUBSTR(`hotel_worth`, 1, LENGTH(`hotel_worth`) - 1)

取出除最后一个字符ie之外的列的数据(从10M到10),然后+0将其转换为int。

所以最后的> 3比较基本上就是选择大于3M的数据