从一个查询生成一组结果的非唯一编号?

时间:2017-12-24 21:57:56

标签: mysql sql

这就是我想要的。如您所见,uniq列对于所有10个结果都具有相同的非唯一值。

+--------+------------+
| id     | uniq       |
+--------+------------+
| 714183 | 1514152300 |
| 714184 | 1514152300 |
| 714185 | 1514152300 |
| 714186 | 1514152300 |
| 714187 | 1514152300 |
| 714188 | 1514152300 |
| 714189 | 1514152300 |
| 714190 | 1514152300 |
| 714191 | 1514152300 |
| 714192 | 1514152300 |
+--------+------------+

这是下一个选择

+--------+------------+
| id     | uniq       |
+--------+------------+
| 714202 | 1514152302 |
| 714201 | 1514152302 |
| 714200 | 1514152302 |
| 714199 | 1514152302 |
| 714198 | 1514152302 |
| 714197 | 1514152302 |
| 714196 | 1514152302 |
| 714195 | 1514152302 |
| 714194 | 1514152302 |
| 714193 | 1514152302 |
+--------+------------+
  select id, floor(avg(unix_timestamp())) uniq 
    from sites2 
   where status=0 
group by id limit 10; 

这是我能想到的最好的。问题是,我需要每次等待1秒才能获得这些结果。什么是更好的解决方案?格式无关紧要,它可以是任意大小的整数。

1 个答案:

答案 0 :(得分:0)

如果您想要更高的精确度,可以使用unix_timestamp(now(6))

select id, unix_timestamp(now(6))
from sites2 
where status = 0 ;

(我不认为group by是必要的。)

返回带小数点的数字。如果这是一个问题,您可以多次1,000,000并转换为十进制/ bigint。