mysql怎么截取字段 mysql截取字段最后出现的位置

mySQL 如何截取 longtext 字段的一些内容?这个是 PHP 序列化(serialize函数)的数据,是否考虑用 PHP 里整理筛选并保存数据?
?php
// 获取数据库值
$mark = 'a:2:{i:0;a:3:{s:9:"mark_text";s:15:"my 备注1";s:8:"add_time";i:1387787049;s:7:"op_name";s:7:"testtest";}i:1;a:3:{s:9:"mark_text";s:15:"my 备注2";s:8:"add_time";i:1387787052;s:7:"op_name";s:7:"test001";}}';
// 反序列化
$mark = unserialize( $mark );
// 输出数据
echo $mark[0]['mark_text']; // 此处为 "my 备注1"
echo $mark[1]['mark_text']; // 此处为 "my 备注2"
当然 , 也有很多别的办法 , 不通过 PHP 也可以批量获取这些数据
请问下MYSQL怎么截取字符段的反感 , 求助?。?/h2>分别有这样对应的函数mysql怎么截取字段,但名字不相同mysql怎么截取字段,
可以这样解决:
在程序中,首先判断数据库的类型是oracle,mysql , sql server中的哪一种,
然后再写对应数据库类型的函数
呵呵,希望能有帮助,^_^
mysql如何截取一个json字符串代码如下:
CREATE PROCEDURE sp_str
(
IN p_str VARCHAR(50), /*原始字符串*/
IN p_begin_str VARCHAR(50), /*要匹配的起始字符串*/
IN p_end_str VARCHAR(50)) /*要匹配的结束字符串*/
OUT p_result VARCHAR(50)) /*返回结果*/
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE m_len INT DEFAULT 0;
DECLARE m_index INT DEFAULT 0;
/*计算第一个匹配字符串的索引位置*/
select locate(p_begin_str,p_str)+char_length(p_begin_str) into m_index;
【mysql怎么截取字段 mysql截取字段最后出现的位置】/*计算第一个匹配字符串的长度*/
select locate(p_end_str,p_str,m_index) into m_len;
select SUBSTRING(p_str,m_index,m_len-m_index) INTO p_result ;
END;
执行:
CALL sp_str('[]abcd[12345]aa[]ss','abcd[',']',@result);
返回值 @result 为12345
call sp_str('[]abcd[sdww]aa[]ss','abcd[',']',@result);
返回值 @result 为sdww
如果不用存储过程,可以直接写sql语句实现:
代码如下:
select SUBSTRING(
']abcd[12345]111[]',
locate('abcd[',']abcd[12345]111[]')+CHAR_LENGTH('abcd['),
locate(']',']abcd[12345]111[]',CHAR_LENGTH('abcd['))-
(select locate('abcd[',']abcd[12345]111[]')+CHAR_LENGTH('abcd['))
)
返回值为 12345
关于mysql的函数介绍:
CHAR_LENGTH(str)
返回字符串str的长度 。
LOCATE(substr,str)
POSITION(substr IN str)
返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面 , 返回0.
mysql select LOCATE('bar', 'foobarbar');
- 4
mysql select LOCATE('xbar', 'foobar');
- 0
该函数是多字节可靠的 。LOCATE(substr,str,pos)
返回子串substr在字符串str第一个出现的位置,从位置pos开始 。如果substr不是在str里面,返回0 。
mysql select LOCATE('bar', 'foobarbar',5);
- 7
这函数是多字节可靠的 。
SUBSTRING(str,pos,len)
SUBSTRING(str FROM pos FOR len)
MID(str,pos,len)
从字符串str返回一个len个字符的子串,从位置pos开始 。使用FROM的变种形式是ANSI SQL92语法 。
mysql select SUBSTRING('Quadratically',5,6);
- 'ratica'
该函数是多字节可靠的 。
SUBSTRING(str,pos)
用mysql查询出字段中的前几个字用mysql查询出字段中mysql怎么截取字段的前几个字可以用left()方法mysql怎么截取字段,
如果要查一个字段mysql怎么截取字段的前50个字符mysql怎么截取字段,sql语句举例:
select left(table_column,50)fromtable_name;
left(table_column,50) 表示截取table_column左边的50个字符

推荐阅读