我想从Laravel 5.1中的MySQL数据库中的' - '(连字符)分隔值中获取数据。
例如:
表格价格
id price
1 100-200
2 300-500
3 500-700
4 800-900
5 500
6 1000-1500
现在我希望数据大于或等于400 。
这是我到目前为止尝试过的代码:
$query->where('price.'.price, '>=', 400)
但它会返回所有数据,但我只想获得相关数据。
答案 0 :(得分:2)
如果您正在查看substring_index
price
功能
select * from price where
substring_index(price,'-',1)+0 >=400
如果您正在考虑范围,300-500
也被考虑,那么您可以这样做
select * from price where
substring_index(price,'-',1)+0 >=400
or substring_index(price,'-',-1)+0 >=400
答案 1 :(得分:1)
您可以通过split_str
功能执行此操作:
CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');
并查询以使用此功能:
SELECT id, SPLIT_STR(price, "-", 1) AS p1
FROM price
HAVING p1 >= 400