代码之家  ›  专栏  ›  技术社区  ›  Chris Sobolewski

mysql检索部分列

  •  1
  • Chris Sobolewski  · 技术社区  · 14 年前

    我使用TinyMCE允许用户写入最终将提交到数据库的内容。

    <!--pagebreak--> ).

    以后如何才能将所有内容拉回到pagebreak“标记”的第一次出现?在标记之后可能会有大量的数据,我可以稍后通过php丢弃这些数据,但似乎我甚至不应该把它们带回来。所以我可以 SELECT 如果我不知道数据的深度 <!--分页符--> 将?

    编辑: 下面的答案确实有效,会帮我找到我需要去的地方。。我只是好奇是否有一种同样简单的方法来处理将整个列带回来,如果它很短,因此pagebreak标记不存在。使用下面的解决方案,如果找不到pagebreak,则返回空字符串。

    2 回复  |  直到 14 年前
        1
  •  2
  •   mechanical_meat nazca    14 年前

    像这样的事情应该能让你一切顺利 <!-- :

    SELECT SUBSTRING(my_col FROM 1 FOR POSITION('<!--' IN my_col)-1) AS a_chunk 
      FROM my_table
    

    Reference for string functions


    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() 为了这个。

        2
  •  1
  •   robert    13 年前

    为什么不在mysql表中创建另一列来存储 <!--pagebreak--> 是。您将在脚本中计算此值,并在插入tinymce生成的html时同时存储此值。

    然后在以后的检索中,使用该列中的值选择从1到该值的子字符串。这会使查询更简单,并可能提高查询性能?