Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何使用LIKE语句仅获取匹配记录_Mysql_Sql_Sql Server - Fatal编程技术网

Mysql 如何使用LIKE语句仅获取匹配记录

Mysql 如何使用LIKE语句仅获取匹配记录,mysql,sql,sql-server,Mysql,Sql,Sql Server,如何从两个表中获取匹配的记录 匹配表 CREATE TABLE matching ( ID INT, Name varchar(20) ); INSERT INTO matching(ID,name) VALUES (1,'Child'),(2,'GrandChild'),(3,'parent') 树木匹配 CREATE TABLE Treematching ( ID INT, Name varchar(20) ); INSERT INTO Treematching(ID,

如何从两个表中获取匹配的记录

匹配表

CREATE TABLE matching (
  ID INT,
  Name varchar(20)
);

INSERT INTO matching(ID,name) VALUES (1,'Child'),(2,'GrandChild'),(3,'parent')
树木匹配

CREATE TABLE Treematching (
  ID INT,
  Name varchar(20)
);

INSERT INTO Treematching(ID,name) VALUES 
(1,'Child-Foster'),
(2,'Child-Filly'),
(3,'Child-Ricky'),
(4,'GRandchild-Filmy'),
(5,'GRandchild-Freaky'),
(6,'GRandchild-Frim'),
(7,'Frim'),
(8,'None'),
(9,'parent-John')
如何从树匹配表中获取匹配记录

输出:

ID  Name              TName
1   Child           Child-Foster
2   Child           Child-Filly
3   Child           Child-Ricky
4   GRandchild      GRandchild-Filmy
5   GRandchild      GRandchild-Freaky
6   GRandchild      GRandchild-Frim
9   parent          parent-John

如何使用like语句获取相同的记录我已尝试使用CONCAT。

您可能可以执行类似的操作(未测试,我没有sql server实例):

尝试下面的查询

SELECT  TM.ID,M.Name,TM.Name
FROM    @matching   AS  M
    INNER JOIN  @Treematching   AS  TM  ON  TM.Name LIKE M.Name+'%'

如果使用SQL Server,可以尝试以下操作:

SELECT 
    t.ID,
    m.Name,
    t.Name
FROM matching AS m
INNER JOIN Treematching AS t
ON t.Name LIKE '%'+m.Name+'%'
SELECT 
    t.ID,
    m.Name,
    t.Name
FROM matching  AS m
INNER JOIN Treematching AS t
ON t.Name LIKE CONCAT('%',m.Name,'%')
如果您使用MySQL服务器,请尝试以下操作:

SELECT 
    t.ID,
    m.Name,
    t.Name
FROM matching AS m
INNER JOIN Treematching AS t
ON t.Name LIKE '%'+m.Name+'%'
SELECT 
    t.ID,
    m.Name,
    t.Name
FROM matching  AS m
INNER JOIN Treematching AS t
ON t.Name LIKE CONCAT('%',m.Name,'%')
关于MySQL版本,请看下面的链接


到目前为止您尝试了什么?在join和concat函数中使用like语句您使用的是MySQL还是MS SQL Server?他们的同类不完全兼容…我把简单的事情弄得很复杂。。谢谢你的回答