从任何列中的给定字符串中获取包含ANY关键字的所有行

时间:2018-02-27 21:48:52

标签: mysql select

Okey所以我已经和以下问题争吵了一段时间。让我们假设用户有一个搜索输入,他可以在其中输入任何信息,如姓名,专业或任何东西,然后我们测试表以返回包含该字符串中任何内容的所有行。

假设我有下面给出的表,用户请求是:spec_1 city_1我想只返回前2行。如果他的输入只是:city_2我想只获得第三行。

我可以在这里提出一些建议吗?尝试过很少的东西但是真的找不到任何可以测试整行是否包含任何地方给定字符串的内容。

+----+------+---------+-----------------+----------------+--------+---------------+
| id | name | surname | location_street | location_place | spec   | location_city |
+----+------+---------+-----------------+----------------+--------+---------------+
|  6 | John | Doe     | street_1        | place_1        | spec_1 | city_1        |
|  7 | Bill | Dawkins | street_2        | place_2        | spec_1 | city_1        |
|  8 | Tom  | Schmidt | sreet_3         | place_3        | spec_3 | city_2        |
+----+------+---------+-----------------+----------------+--------+---------------+

2 个答案:

答案 0 :(得分:0)

您可以使用多个where子句

$outer = 'something';

$instance = new class {
    public function testing() {
        var_dump($outer); // would like this to dump the string 'something'
    }
};

答案 1 :(得分:0)

如果我理解你的问题,你需要使用带有where子句的select查询 -

select * from table_name where spec='spec_1' OR location_city='city_1';

(这匹配id = 6和7的行,因此只返回id = 6和7的行)

select * from table_name where location_city='city_2';

(这匹配id = 8的行,因此只返回id = 8的行)