是否可以在具有某些共享值的两列上使用LIKE或“ =”?

时间:2018-10-07 14:43:47

标签: mysql sql-like

在我的数据库中,有以下表格:

svn ls -R https://github.com/exampleproject/branches/master | wc -l

您会看到Snuffles&Puffles属于John,因为它们的PetID与John的CustomerID相同,但附加了3个字符。

我的问题:

我是否可以在列上使用“ =”或“ LIKE”:

CUS
Name varchar(20)
CustomerID varchar(8)

PET
Name varchar(20)
PetID varchar (8)

CUS Table
| Name | CustomerID  |
----------------------
| John | AC001       |

PET Table
| Name     | PetID   |
----------------------
| Snuffles | AC001-01|
| Puffles  | AC001-02|

这样我得到的结果类似于:

SELECT CUS.Name , PET.Name, PetID
FROM CUS, PET
WHERE PetID = CustomerID;

该表将显示:

WHERE PetID LIKE 'AC%' AND CustomerID LIKE 'AC%';

无需显式写下每个所有者/宠物的通配符条件。

1 个答案:

答案 0 :(得分:4)

是的,您可以使用LIKE作为加入条件:

SELECT CUS.Name, PET.Name, PetID
FROM CUS
JOIN PET
  ON PetId LIKE CONCAT(CustomerId,'%');

db<>fiddle demo