如何使用Laravel从MySQL中的' - '(连字符)分隔值中获取数据?

时间:2016-01-18 11:56:55

标签: php mysql laravel-5.1

我想从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)

但它会返回所有数据,但我只想获得相关数据。

2 个答案:

答案 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