使用 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的数据
设 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的数据