【问题标题】:Get random record using like query in postgres在 postgres 中使用类似查询获取随机记录
【发布时间】:2017-07-19 11:31:23
【问题描述】:

我有一个以 email_address 作为主键的表,表中没有 id 列。

所以每当我点击类似的查询时

select email_address from data  where email_address like '%@gmail.com' limit 10

它按字母顺序给出结果意味着所有以 a 开头的电子邮件 ID(如果存在)。

但我不想要字母顺序,我想要结果

email_address
___________________
a@gmail.com
k@gmail.com
d@gmail.com
b@gmail.com

随机选择以 gmail.com 结尾的电子邮件地址,不按插入顺序或不按字母顺序。

注意:当我只选择 100 个时,我喜欢以每个字母开头的 1000 个结果,然后我不仅想要所有以“a”开头的结果

【问题讨论】:

    标签: postgresql random sql-order-by sql-like alphabetical-sort


    【解决方案1】:

    如果您随机订购它们,然后选择前 10 个结果,我想这可能会奏效。应该是这样的:

    SELECT email_address FROM data
    WHERE email_address LIKE '%@gmail.com'
    ORDER BY RANDOM()
    LIMIT 10
    

    【讨论】:

    • 对不起,它工作.. 这是我的错误,当我检查我的数据库时,它所有的电子邮件都以'a'开头。现在它的工作
    • 如果您支持正确的答案,我会很高兴的:)
    猜你喜欢
    • 2011-06-11
    • 2015-10-08
    • 2015-03-30
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    相关资源
    最近更新 更多