我在PostgreSQL数据库中有两个表。 第一个表包含一个ID和一个最多200个字符的文本字段,第二个表包含一个数据定义表,其中包含一个包含表情符号或首字母缩略词的列,第二个表包含将它们转换为简单易读的英语。
表1中的记录数约为1200,表2中的数字约为300。 我希望编写一个SQL语句,它将表1中第1列中的任何文本转换为基于表2中定义的常规可读语言。
因此,例如,如果表1中的值显示为: 最终完成:) 转换后的SQL类似于: 终于完成微笑或微笑 , 从第二个表中提取定义。
请注意,笑脸可以在第一列的文本中的任何位置,也可以是三百个字符中的一个。
有人知道这是否可行?
答案 0 :(得分: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