1

我在字段中有一些 ISBN 数据description,数据的格式是这样 ISBN:10(十位 ISBN 编号),字段描述中的字符串没有模式,例如可以这样出现

(作者姓名文本)(自定义姓名文本)ISBN:10(isbn 编号)(一些其他数据文本)或者也像这样仅使用 isbn 编号 ISBN:10(isbn 编号)等等。

我尝试了以下 LOCATE mysql 语句,但结果是不规则数据,因为它从 ISBN 号中删除了一些数字

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

    AS ISBn_number
FROM 
    database_books AS database
4

1 回答 1

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:我不建议您创建拍卖行软件;)(笑话)
于 2014-02-25T04:42:36.923 回答