0

我有一个需要运行的查询,我有 2 个问题。

首先是我的查询:

INSERT INTO  `anzie_oscommerce`.`discount_codes` (
`discount_codes_id` ,
`discount_description` ,
`products_id` ,
`categories_id` ,
`manufacturers_id` ,
`excluded_products_id` ,
`customers_id` ,
`orders_total` ,
`order_info` ,
`exclude_specials` ,
`discount_codes` ,
`discount_values` ,
`minimum_order_amount` ,
`expires_date` ,
`number_of_orders` ,
`number_of_use` ,
`number_of_products` ,
`status`
)
VALUES (
'' ,  'GALA 2012', '' , '' , '' , '' , '' ,  '2',  '1',  '0',  substr(md5(uniqid(rand(), true)), 0, 8),  250,  '0.0000',  '2013-22-06',  '0',  '1',  '0',  '1'
);

第一个问题是我需要生成我正在尝试使用从 php 获取的 uniqid 函数的随机代码,但我知道这是不可能的。有没有办法在sql中做类似的事情?

第二个问题是我需要运行 250 次才能生成 250 个不同的折扣代码。有没有快速多次运行 sql 的方法?

4

2 回答 2

1

对于第一个问题:这取决于您使用的数据库。Mysql 有一个 rand() 函数:https ://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand

对于第二个:250 对于数据库来说并不多 - 只需将它放在 php for 循环中就可以了。

于 2012-11-05T04:25:48.393 回答
0

我喜欢 sonofagun 的答案。另一个技巧是从虚拟表中选择 250 次。

INSERT INTO  `anzie_oscommerce`.`discount_codes` (
`discount_codes_id` ,
`discount_description` ,
`products_id` ,
`categories_id` ,
`manufacturers_id` ,
`excluded_products_id` ,
`customers_id` ,
`orders_total` ,
`order_info` ,
`exclude_specials` ,
`discount_codes` ,
`discount_values` ,
`minimum_order_amount` ,
`expires_date` ,
`number_of_orders` ,
`number_of_use` ,
`number_of_products` ,
`status`
)
(select '' ,  'GALA 2012', '' , '' , '' , '' , '' ,  '2',  '1',  '0',  substr(md5(uniqid(rand(), true)), 0, 8),  250,  '0.0000',  '2013-22-06',  '0',  '1',  '0',  '1' union all
select '' ,  'GALA 2012', '' , '' , '' , '' , '' ,  '2',  '1',  '0',  substr(md5(uniqid(rand(), true)), 0, 8),  250,  '0.0000',  '2013-22-06',  '0',  '1',  '0',  '1' union all
select '' ,  'GALA 2012', '' , '' , '' , '' , '' ,  '2',  '1',  '0',  substr(md5(uniqid(rand(), true)), 0, 8),  250,  '0.0000',  '2013-22-06',  '0',  '1',  '0',  '1' union all
select '' ,  'GALA 2012', '' , '' , '' , '' , '' ,  '2',  '1',  '0',  substr(md5(uniqid(rand(), true)), 0, 8),  250,  '0.0000',  '2013-22-06',  '0',  '1',  '0',  '1' union all
...however many times
);
于 2012-11-05T05:05:40.777 回答