0

我在 PostgreSQL 数据库中有两个表。第一个表包含一个 ID 和一个最多 200 个字符的文本字段,第二个表包含一个数据定义表,该表有一列包含笑脸或首字母缩略词,第二列将它们转换为易读的英语。

表 1 中的记录数约为 1200,表 2 中的记录数约为 300。我希望编写一个 SQL 语句,根据表 2 中的定义将表 1 中的第 1 列中的任何文本转换为正常可读的语言.

例如,如果表 1 中的值显示为:Finished Finished :) 转换后的 SQL 将类似于:Finally Finished Smiles 或面带微笑,其中定义是从第二个表中提取的。

请注意,笑脸可以在第一列的文本中的任何位置,也可以是三百个字符之一。

有谁知道这是否可能?

4

1 回答 1

0

是的。您是想完全用 SQL 来完成,还是要编写一小段代码来完成这项工作?我不完全确定如何在 SQL 中完成这一切,但我会考虑以下内容:

SELECT row.textToTranslate FROM Table_1
oldText = row.textToTranslate
Split row.textToTranslate by some delimeter
For each word in row.textToTranslate:
    queryResult = SELECT FROM Table_2 WHERE pretranslate=word
    if(queryResult!=Null)
        modifiedText = textToTranslate.replace(word, queryResult) 
UPDATE Table_1 SET translatedText=modifiedText WHERE textToTranslate=oldText
于 2013-01-07T10:38:50.617 回答