是否可以在具有某些共享值的两列上使用 LIKE 或“=”?
Is it possible to use LIKE or " = " on two columns with SOME sharing values?
在我的数据库中,我有以下 tables:
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|
您可以看到 Snuffles & Puffles 属于 John,因为他们的 PetID 与 John 的 CustomerID 相同,但多了 3 个字符。
我的问题:
有没有办法让我在列上使用“=”或“LIKE”:
SELECT CUS.Name , PET.Name, PetID
FROM CUS, PET
WHERE PetID = CustomerID;
这样我得到的结果类似于:
WHERE PetID LIKE 'AC%' AND CustomerID LIKE 'AC%';
table 将显示的位置:
| Name | Name | PetID |
-----------------------------------
| John | Snuffles | AC001-01 |
| John | Puffles | AC001-02 |
无需为每个 owner/pet.
显式写下通配符条件
是的,您可以使用 LIKE
作为连接条件:
SELECT CUS.Name, PET.Name, PetID
FROM CUS
JOIN PET
ON PetId LIKE CONCAT(CustomerId,'%');
在我的数据库中,我有以下 tables:
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|
您可以看到 Snuffles & Puffles 属于 John,因为他们的 PetID 与 John 的 CustomerID 相同,但多了 3 个字符。
我的问题:
有没有办法让我在列上使用“=”或“LIKE”:
SELECT CUS.Name , PET.Name, PetID
FROM CUS, PET
WHERE PetID = CustomerID;
这样我得到的结果类似于:
WHERE PetID LIKE 'AC%' AND CustomerID LIKE 'AC%';
table 将显示的位置:
| Name | Name | PetID |
-----------------------------------
| John | Snuffles | AC001-01 |
| John | Puffles | AC001-02 |
无需为每个 owner/pet.
显式写下通配符条件是的,您可以使用 LIKE
作为连接条件:
SELECT CUS.Name, PET.Name, PetID
FROM CUS
JOIN PET
ON PetId LIKE CONCAT(CustomerId,'%');