我刚刚实施了一些在线测验软件,允许员工在我们公司的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&#39SELECT LEFT(QuizName, Length(QuizName)-15)
或者
SELECT SUBSTR(QuestionReference, 11, 100)
但我还没有找到同时删除前缀和后缀的方法。我对数据库很陌生,并将它们与PHP连接起来,而且我没有找到解决方案就进行了搜索和搜索。
答案 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
,但如果prefix
和sufix
都相同,请在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;