我有一个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)
答案 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);