MySQL用于从字符串的开头和结尾删除字符

时间:2015-03-12 15:23:46

标签: mysql

我刚刚实施了一些在线测验软件,允许员工在我们公司的Intranet网站上进行必要的培训后测验,并且我已成功设置软件以将结果写入MySQL数据库。我还设计了一个php页面,允许主管搜索测验结果,以便验证员工培训,但是,有一列在显示结果时给我带来麻烦。

在数据库"培训"有一个名为" questiondata"的表。此表包含测验问题,员工和#39;回答,以及他们在每个问题上花费的时间。我需要和员工一起展示问题。作为主管搜索结果的一部分的答案,然而,测试软件在列#34; QuestionReference"中列出了每个问题的前缀。用"问题#"并附加一个带有问题ID的后缀(每个测验和测验问题都会改变); e.g。

"Question # Have you ever danced with the devil in the pale moonlight? (1868656583-10)"

我已经能够删除"问题#"与

SELECT SUBSTR(QuestionReference, 11, 100)

和带有

的后缀ID&#39
SELECT LEFT(QuizName, Length(QuizName)-15)

或者

SELECT SUBSTR(QuestionReference, 11, 100)

但我还没有找到同时删除前缀和后缀的方法。我对数据库很陌生,并将它们与PHP连接起来,而且我没有找到解决方案就进行了搜索和搜索。

3 个答案:

答案 0 :(得分:0)

如何通过一个接一个地应用它们来找到你找到的解决方案呢?

SELECT SUBSTR(LEFT(myField,LENGTH(myField)-15),11)

这意味着"从第11位开始,从结尾切下15个字符"

答案 1 :(得分:0)

SELECT SUBSTR(QuestionReference, 11, LENGTH(QuestionReference)-11-15);

你可以TRIM - 不要有额外的空格:

SELECT TRIM(SUBSTR(QuestionReference, 11, LENGTH(QuestionReference)-11-15));

答案 2 :(得分:0)

您可以尝试这种方式删除prefix&来自字符串的sufix,但如果prefixsufix都相同,请在BOTH上使用TRIM

SELECT TRIM(LEADING "Question #" FROM "Question # Have you ever danced with the devil in the pale moonlight? (1868656583-10)");

SELECT TRIM(TRAILIING "(1868656583-10)" FROM "Question # Have you ever danced with the devil in the pale moonlight? (1868656583-10)");

编辑:这是最明智的方法,我知道你的要求已经完成,但尝试这种更聪明的方式。

SELECT TRIM(BOTH "Question #|(1868656583-10)" FROM "Question # Have you ever danced with the devil in the pale moonlight? (1868656583-10)") as final_string;