我有一个表,并希望使用一个mysql查询将随机的唯一值归并给它。表结构,如:
id | unique_id
1 | 1
2 | 5
3 | 2
4 | 7
等
unique_id是整数(10),没有符号
因此,我希望每次都用唯一的随机值填充unique_id字段(在我的示例中不是1、5、2、7)。
Algorytm是:
1. Get 1 unique random value, which will not have duplicates in unique_id field
2. Create new row with unique_id = result of 1 query
我
我想要创建一个PHP页面,它从MySQL数据库中随机选择一个记录(一个字符串,它将用作唯一的“令牌”)。我只想选择这个随机记录一次,以后再也不会。
为了做到这一点,我向表中添加了一个额外的字段(名为‘number field’,包含数字0),该字段在特定记录被选中时会增加。这样,只能选择数字字段表字段中具有0值的记录。一旦选择了随机记录,数字字段字段就会增加到1,不能再被选择了。我正在考虑使用以下PHP代码:
$result = mysql_query("SELECT token FROM table WHERE numberfield < **1** ORDER BY RAND
我创建了一个竞赛,推荐别人的人每次推荐都会增加获胜的几率。现在我必须弄清楚如何使用mysql或php来给他们更好的机会。随机选择一行并不能将其删除。
在我的表中有两列,一列用于ID,另一列用于推荐ID。该表通过将ID添加到推荐ID字段来跟踪谁推荐了谁,因此前几行数据如下所示:
name id referralid
mark 15 20
ted 20
jim 22 20
所以“ted”应该有3次获胜的机会,因为他推荐了另外两个人。我如何在mysql或php中做到这一点?
我使用LOAD DATA INFILE将CSV导入到MySQL表中。表的一个字段存储邮政编码数据,这是我在表结构contributor_zipcode INT中定义的。
在CSV中,此字段有时为空。当我执行LOAD查询时,MySQL将抛出如下警告:
Incorrect integer value: '' for column 'contributor_zipcode' at row 180
我尝试将该字段重新定义为contributor_zipcode INT DEFAULT '0'和contributor_zipcode INT DEFAULT
我在Zend_Db或PDO驱动程序中遇到了一个看起来很奇怪的问题,这可能是因为我对这两种驱动程序缺乏了解。
让我们假设我有一个MySQL表,其中有一个NULL可实现的TIME字段。如果我在MySQL客户机中运行这样的查询:
UPDATE mytable SET mytime = NULL WHERE id = 1;
一切都按预期工作,在查询后mytime字段将保持NULL作为值。
但是,如果我在PHP中通过Zend_Db_Adapter运行完全相同的查询,则mytime字段在这样的查询之后被设置为'0:0:0':
$db->getConnection()->exec
我希望将行从一个MySQL表复制到另一个表中,同时对两个字段的顺序进行随机化,即我希望从table1中获取带有字段id、a、b的行,并将它们插入到table2中,但在随机行上交换a和b。
这就是我试过的:
INSERT INTO table2 (id, a, b)
SELECT
id,
IF(@r=RAND() < 0.5, a, b),
IF(@r < 0.5, b, a)
FROM table1
WHERE table1.filter = 42;
我原以为这会产生每一行一个随机数,但实际上它只生成每个查询一个随机数,所以对所有行