MYSQL 查询帮助- Substring 和 Instring

MYSQL query help- Substring and Instring

我需要帮助编写查询以从 table 获取一些数据。我正在尝试编写一个查询,该查询将 select 所有名称中包含“bill”的书名,并将显示书名、书名长度以及后面的部分书名“账单”。我知道你应该使用 substring 和 instring 函数,但我一直在 运行 进入语法错误 and/or 不正确的输出

本书table如下

CREATE TABLE Book( 
   ISBN        CHAR(13),
   Title       VARCHAR(70) NOT NULL,
   Description VARCHAR(100),
   Category    INT,
   Edition     CHAR(30),
   PublisherID INT         NOT NULL,
   constraint book_ISBN_pk PRIMARY KEY (ISBN),
   constraint book_category_fk FOREIGN KEY (Category) REFERENCES Category(CatID),
   constraint book_publisherID_fk FOREIGN KEY (PublisherID) REFERENCES Publisher(PublisherID)
);

这是标准 SQL 版本,afaik mysql 应该也支持这些功能:

select 
   Title
  ,char_length(Title)
  ,substring(Title from position('bill' in Title) + 4)
from book
where Title like '%bill%'

使用regexp进行匹配,如下:

select title from books where title regexp '*book*'

至于你应该使用什么,在我的书中,你只应该使用能获得预期结果的东西。如果有的话,稍后会进行优化。

使用 SUBSTRINGLENGTHINSTR

SELECT
  Title,
  LENGTH(Title) as Length,
  SUBSTRING(Title,INSTR(Title, 'bill'),LENGTH(Title)-INSTR(Title, 'bill')) as Rest
FROM
  Book
WHERE
  Title like '%bill%'

Tested - SQL Fiddle