我有一个数据库,在一列中有很多名称(每个名称的拼写不同),并希望返回一个名称的所有变体。为此,我创建了第二个(整数)列,只要它只是一个变体,它就具有相同的值。
1 | Aaron | 1
2 | Aron | 1
3 | Bob | 2
我想要做的是搜索Aaron以及让Aaron和Aron同时返回的程序。
到目前为止我所拥有的是SELECT * FROM name WHERE name=$name;
如何让它显示其variation_nr与输入名称的variation_nr相同的所有名称?
答案 0 :(得分:4)
您可以使用子查询:
SELECT * FROM name
WHERE variation_nr IN (SELECT variation_nr FROM name WHERE name = $name);
答案 1 :(得分:1)
您可以使用INNER JOIN
并将表格加入variation_nr
字段,如下所示:
SELECT `n2`.*
FROM `name` AS `n1`
INNER JOIN `name` AS `n2`
ON (`n1`.`variation_nr` = `n2`.`variation_nr`)
WHERE `n1`.`name` = $name;