gpt4 book ai didi

mysql - 如何引用mysql中同一行的值?

转载 作者:行者123 更新时间:2023-11-29 10:23:03 25 4
gpt4 key购买 nike

我正在检索一行的长文本简介。示例:对一本书的描述。有没有一种方法可以将较长文本中同一行的其他值作为变量的形式引用。这里的想法是,我不必梳理整个长文本输出并更改引用的值的每个实例。

使用与以前相同的方式:描述是从同一本书的标题和作者所在的同一行检索的列:“$TITLE 是一本由 $AUTHOR 等人写的书。”例如,如果同一行有一个标题列和作者列,其值为“Huckleberry Fin”和“Mark Twain”,以及一个描述列,其值为“$TITLE 是一本由 $AUTHOR 等写的书”。 .. 检索描述时,描述将显示为“《哈克贝利·芬》是马克·吐温等人写的一本书”。重新使用相同的示例:如果上面一行的标题更新为“哈克贝利·费恩历险记”而不更新描述,这将是一个我想避免的费力且乏味的过程,当检索描述时,它会显示:“哈克贝利·费恩历险记”是马克·吐温写的书”

也许这并不存在,我必须为它的网络服务器端制作自己的引擎,但似乎提高效率的最佳选择是在数据库而不是网络服务器中完成此操作。也许我对 MySQL 的了解不够,不知道这可以使用诸如 View 之类的东西来实现。不管怎样,这似乎是在服务器上完成的一件非常常见的事情,我无法想象这是不能完成的......但话又说回来,也许我错过了一些非常简单的东西。

最佳答案

您可以使用REPLACE:

SELECT title, REPLACE(description, '$TITLE', title) as description FROM books

但是如果您需要使用嵌套的 REPLACE 表达式替换多个占位符,它将变得不可读:

SELECT title,
REPLACE(
REPLACE(description, '$TITLE', title),
'$MAINCHARACTER',
main_character
) as description
FROM books

我宁愿用应用程序语言来做。例如,对于 PHP,您可以使用:

$description = str_replace(
['$TITLE', '$MAINCHARACTER'],
[$title, $mainCharacter],
$description
);

添加更多占位符不会使其变得不可读。

[..] but it seems like the best option for efficiency would be to have this done in the database and not the web server.

我看不出有什么理由,为什么任何语言的效率都比 MySQL 低。

Anyway, it seems like this would be a very common thing to have done on the server

我对此表示怀疑。您会发现很多评论,例如“为什么不在应用程序语言中这样做?”。至少 MySQL 对字符串操作的支持非常有限。

关于mysql - 如何引用mysql中同一行的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48877432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com