在postgres中使用like查询获取随机记录

Get random record using like query in postgres

我有一个以 email_address 作为主键的 table,并且 table 中没有 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'

开头的结果

如果您随机排序它们,然后选择前 10 个结果,我想这可行。它会是这样的:

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