SQL从所有列都等于值的表中选择

标签 sql

有没有一种方法可以选择数据库表中每一列都等于一个值的所有内容?

假设我有这张表:

+-----------------------------+
|           people            |
+-----------------------------+
|  id  | name |address|  age  |
+------+------+-------+-------+
|1     |Arnold|  USA  |   31  |
|2     |Andeng|  PHI  |   18  |
|3     |  Bea |  UK   |   52  |
+------+------+-------+-------+

SQL 语句如下:

SELECT id, name, address, age 
FROM people 
WHERE id, name, age, address LIKE '%$value%'

希望你明白我的意思。

最佳答案

在 SQL 中,您需要独立测试每个值:

SELECT id, name, address, age
FROM people
WHERE id LIKE '%$value%' AND
      name LIKE '%$value%' AND
      age LIKE '%$value%' AND
      address LIKE '%$value%';

第一个注意事项。这假定列是字符串。 LIKE 应仅用于字符串(如有必要,显式转换其他类型)。

第二个注意事项。如果您要将参数传递到查询中,请使用参数。不要乱改查询字符串。

关于SQL从所有列都等于值的表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52088645/

相关文章:

sql - SQL 中的持久临时表?

sql - 获取包含字母过滤的单词列表

mysql - 将字符串连接到 SELECT * MySql

MySQL - 如何计算空值和非空值?

MySQL ERROR 1064 在线,但不知道哪里出了问题?

php - 我可以忽略另一个 sql 查询中的 where 子句吗

mysql - 更新列数据mysql

mysql - 如何按字段分组然后按不同字段排序然后限制

mysql - 如何创建 SQL 查询来显示已读消息的计数器

mysql - 按类别汇总最近的 N 个先前条目