如何从数组中搜索?

时间:2019-07-19 06:18:47

标签: php mysql arrays

我正在PHP中建立一个电子商务网站,并且有一个产品表,其中存储着3种不同的价格:

  1. 批发价
  2. 销售价格
  3. 正常价格

现在,我没有为3个价格制作3列,而是将这些价格存储在一个数组中并将该数组存储在SQL数据库中。

现在问题应该是我只想根据批发价来选择产品。假设

"select * from table where wholesale price = 100"

我该怎么做?

我还没有尝试过任何代码,因为我很困惑并且不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

SQL没有数组的概念-您可以使用逗号分隔的字符串,但是由于它只是一个字符串,因此您无法以任何方式引用各个元素。 MYSQL确实具有一些字符串处理功能,因此您可以很容易地拆分3个元素的字符串,例如

drop table if exists t;
create table t(prod int,p varchar(100));
insert into t values
(1,'10,20,30'),
(2,'40,50'),
(3,'60'),
(4,'70,80,90,100');



select prod,
         substring_index(p,',',1)  WholesalePrice,
         substring_index(substring_index(p,',',2),',',-1)  SalePrice,
         substring_index(p,',',-1) RegularPrice
from t;

+------+----------------+-----------+--------------+
| prod | WholesalePrice | SalePrice | RegularPrice |
+------+----------------+-----------+--------------+
|    1 | 10             | 20        | 30           |
|    2 | 40             | 50        | 50           |
|    3 | 60             | 60        | 60           |
|    4 | 70             | 80        | 100          |
+------+----------------+-----------+--------------+
4 rows in set (0.00 sec)

请注意具有3个字符串元素以外的任何东西的有用效果。任何查看数据的人都不知道字符串元素是什么。 “每种产品的规格都会冗长且有问题”-此处大多数建议表明,从长远来看,存储csv值比规范数据更成问题。