Я пытаюсь заменить строку-заполнитель внутри выделения 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 более двух разных запросов к базе данных.
Заранее спасибо!