mysql - 是否可以使用列值sql查询作为和条件
问题描述
是否可以在 mySQL 中使用带有 sql 条件的列值作为语句中的条件?
mySQL 表
|id|name |valid_from |valid_to|active|language|color|sub_condition|
|1 |test 1|2019-03-01 05:20:15|null |1 |en |red |language='en'|
|2 |test 2|2019-03-01 05:20:15|null |1 |de |blue |color='blue' |
询问
SELECT *
FROM `table`
WHERE active = 1 AND
valid_from <= NOW() AND
sub_condition
sub_condition应该是表中的值。
我想要做的是在选定的行中定义更详细的条件,以更详细地过滤整个表。
谢谢
解决方案
您不能使用列值作为 AND 条件来过滤结果,但可以使用列名作为 AND 条件来过滤结果。
SQL 查询会将 sub_condition 列名中的 language='en' 视为列值,否则不会。
您可以过滤结果的适当方式是这样的
例子;
$results = mysql_query("SELECT * FROM table
WHERE active=1 AND valid_from <= NOW() AND lang='eng'");
推荐阅读
- javascript - Maxmind GeoLite2 纯 javascript/html 示例
- javascript - 如何使数据模式在 setTimeout 函数 JS 中工作
- asp.net - Xamarin 形成 UI 设计 Ipad 和 Iphone 尺寸
- c++ - C++ 数组问题长线
- python - 为什么我通过运行 py 和 kv 脚本得到一个空白屏幕?
- python - 使用 python 请求登录的基础知识
- python - TypeError - 必须使用 FSM 实例作为第一个参数调用未绑定的方法 ToTransition()(改为获取 str 实例)
- java - Java 程序中的资源文件
- javascript - Type error in typescript casting a class that has static variables when using strictFunctionTypes
- nswindow - NSWindow 去小型化后消失