如何将一个范围中的多个值插入MySQL列?

时间:2015-08-03 00:11:10

标签: mysql

我有一个MySQL数据库,我需要添加多个值,但我需要在一列中指定一系列值。

我不是专家,但我需要的逻辑是:

INSERT INTO ps_category_product (id_category, id_product, position) VALUES (56,BETWEEN 3 AND 5,0);

我知道在插入查询时不可能使用BETWEEN,但是我怎样才能做类似的事情来指定id_product行的范围?

如何在2个数字之间添加所有值,如3和5(3,4,5)或50和100(50,51,52,...,98,99,100)

3 个答案:

答案 0 :(得分:0)

您可以使用两个表示“范围”的属性创建一个名为range的新表...然后在“ps_category_product”和“new_table”之间创建一个关系(一对一)...这样,在ps_category_product表中你将有一个引用两个值的外键...

答案 1 :(得分:0)

不,插入时不能使用值范围。相反,您必须使用BEFORE INSERT TRIGGER类似下面的内容验证您的插入值(样本)

CREATE TRIGGER validaterangeTrigger 
BEFORE INSERT 
ON ps_category_product
  FOR EACH ROW BEGIN
    IF (NEW.id_product NOT BETWEEN 3 AND 5) THEN
      SET NEW.id_product = 3; <-- setting a default value 3
    END IF

然后您可以拨打INSERT声明

INSERT INTO ps_category_product (id_category, id_product, position) VALUES (56,4,0);

如果id_product值不在3和5之间,那么触发器会将其设置为默认值3.如果验证失败,您也可以选择抛出错误。

答案 2 :(得分:-1)

您也可以尝试使用mt_rand

$id_product = mt_rand(3,5);
INSERT INTO ps_category_product (id_category, id_product, position) VALUES (56,$id_product,0);