我正在使用TinyMCE来允许用户写入最终将提交给数据库的内容。
TinyMCE包含一个插入“分页符”的按钮(实际上只是一个HTML评论<!--pagebreak-->
)。
我怎样才能将所有内容撤回到第一次出现的pagebreak“tag”?在那个标签之后可能会有一些重要的数据我可以稍后通过php丢弃,但似乎我甚至不应该把它带回来。如果我不知道SELECT
将会对数据有多远,我可以<!--pagebreak-->
只是列的一部分吗?
修改 下面的答案确实有效,并且会让我到达我需要去的地方..我很好奇是否有一个同样简单的方法来处理整个列,如果它很短,因此pagebreak标签不存在。使用以下解决方案,如果未找到分页符,则返回空字符串。
如果没有,那么我可以在代码中轻松处理它。
答案 0 :(得分:2)
这样的事情可以让你获得<!--
:
SELECT SUBSTRING(my_col FROM 1 FOR POSITION('<!--' IN my_col)-1) AS a_chunk
FROM my_table
Reference for string functions
编辑:
把OMG小马的话放进SQL:
SELECT CASE WHEN position('<!--' IN my_col) > 0
THEN SUBSTRING(my_col FROM 1 FOR POSITION('<!--' IN my_col)-1)
ELSE my_col END AS a_chunk
FROM my_table
听起来你还需要检查文本的长度;是否有分页符。您可以使用CHARACTER_LENGTH()
。
答案 1 :(得分:1)
为什么不在mysql表中创建另一列来存储<!--pagebreak-->
所在位置的整数值。您将在脚本中计算此值,并在插入由tinymce生成的html时同时存储此值。
然后在以后的检索中使用该列中的值来选择从1到该值的子字符串。这应该使您的查询更简单,并可能提高查询性能?