我正在尝试使用从另一个表中获取的随机字符串(名称)替换10 个随机记录中的占位符字符串,仅使用 sqlite 语句。
我已经完成了一个子查询,以便用子查询的结果替换占位符的()。我认为每个子查询都从名称表中加载了一个随机名称,但我发现事实并非如此,每个占位符都被相同的字符串替换。
select id, (replace (snippet, "%NAME%", (select
name from names
where gender = "male"
) )
) as snippet
from imagedata
where timestamp is not NULL
order by random()
limit 10
我期望每次调用子查询时 SELECT 的每一行都有不同的随机替换。
- 你好,我是 %NAME%,这是我的房子
- 这是%NAME%的车,告诉我你的想法
相反,每一行都有相同的替换:
- 你好,我是大卫,这是我的房子
- 这是大卫的车,让我知道你的想法
- 等等...
我不确定它可以在 sqlite 中完成,或者我是否必须在 php 中通过两个不同的数据库查询来完成。
提前致谢!