Mysql中的子字符串提取

时间:2013-09-11 16:36:43

标签: mysql substring

我在description字段中有一些ISBN数据,数据的格式如下:ISBN:10(十位数的ISBN号),字段描述中的字符串没有图案化,例如,它可能看起来像此

(作者姓名文本)(自定义名称文本)ISBN:10(isbn number)(其他一些数据文本)或者这样只有isbn数字 ISBN:10(isbn number)等等。

我已经尝试了以下LOCATE mysql语句,但这会产生不规则数据,因为它从ISBN号中删除了一些数字

SELECT
    SUBSTRING(database.description, 
      LOCATE('ISBN10:', auctions.description)+8) 

    AS ISBn_number
FROM 
    database_books AS database

1 个答案:

答案 0 :(得分:1)

假设您的每个isbns确实以格式

包含在说明中

ISBN:10<space>0123456789<space>

您可以使用where子句

选择所有数据集
where description like '%ISBN:10 __________ %'

然后您可以使用以下内容提取所有ISBN:

select SUBSTRING(description,LOCATE('ISBN:10 ',description)+8,10 ) isbn10 
from database_books
where description like '%ISBN:10 __________ %'
  • 注1:您似乎尝试从2个不同的表格中选择“数据库”和“拍卖”。
  • 注2:我不建议调用表'数据库'。
  • 注3:我不建议您创建拍卖行软件;)(笑话)