MySQL中的多字符串文本
意外地遇到了一些奇怪的事情MySQL中的多字符串文本,mysql,sql-like,Mysql,Sql Like,意外地遇到了一些奇怪的事情 SELECT*from tablename,其中mytext类似于“%string1%”“%1234%” 工作完全等同于 SELECT*from tablename,其中mytext类似于“%string1%”,mytext类似于“%1234%” 我的代码有问题,或者我只是不知道它,在文档中找不到?如前所述,字符串文本会自动连接起来 例如,'hello''world'相当于单个文本'helloworld' 因此,当你写作时: SELECT * from tablena
SELECT*from tablename,其中mytext类似于“%string1%”“%1234%”代码>
工作完全等同于
SELECT*from tablename,其中mytext类似于“%string1%”,mytext类似于“%1234%”代码>
我的代码有问题,或者我只是不知道它,在文档中找不到?如前所述,字符串文本会自动连接起来
例如,'hello''world'
相当于单个文本'helloworld'
因此,当你写作时:
SELECT * from tablename WHERE mytext LIKE '%string1%' '%1234%';
。。。这实际上相当于写:
SELECT * from tablename WHERE mytext LIKE '%string1%%1234%';
正如您所指出的,这有点类似于:
SELECT * from tablename WHERE mytext LIKE '%string1%' AND mytext LIKE '%1234%';
。。。但不完全如此。实际上,前者将匹配'string1 1234'
,但不匹配'1234 string1'
请尝试以下示例来验证这一点:
create table tablename(
pkey bigint,
mytext varchar(64)
);
insert into tablename values (1, 'a b'), (2, 'a c'), (3, 'b a');
select * from tablename where mytext like '%a%' '%b%'; -- returns 1 row
select * from tablename where mytext like '%a%' and mytext like '%b%'; -- returns two rows
谢谢这正是我需要的。