mysql - SQL能这样表示吗?
问题描述
SELECT * FROM shop WHERE id=8;
这条会输出本表中id=8的结果;请问怎么输出全部结果?
就是
SELECT * FROM shop
只不过必须有 where id=???
???也就是通配符,任意值..
我问这个的意思是用预处理语句
$sql='SELECT id FROM shop2 WHERE name=? and id = ? and model = ?';$stmt=$pdo->prepare($SQL);$name=某值;$id=某值;$models=某值;$stmt->execute( array($name,$id,$models) );
然后有时候,只需要 name 就能找到,有时候需要 name,model 才能找到,有时候需要 id ,name,model 才行.
我就想,只需要修改 成一个通配符 就可以不动 $sql 语句了’
如果这样不行,那只能重新编辑 sql 语句,用 字符串连接的方法弄了..弄成 :
$sql='SELECT id FROM shop2 WHERE ';$idstr = $id ? 'id = {$id}' :'';$namestr = $name ? 'name = {$name}' :'';$modelstr= $model ? 'model = {$models}' : '';$arr=Array($idstr,$namestr,$modelstr);$arr = Array_Filter($arr);$sql.=implode(' AND ',$arr);$stmt=$pdo->query($sql);
这样比较麻烦,我就想有简单的办法吗?
大家告诉我有这个办法吗?
问题解答
回答1:不太懂题主意思。一般在代码里拼sql都会这样写SELECT * FROM TABLE WHERE 1 = 1,然后再根据查询条件拼接AND id = ?和其他条件,这样就算id为空也不至于发生sql语法错误。写完后才觉得题主好像是想做sql注入……- -!
回答2:SELECT * FROM shop WHERE 1;
这样应该能够把全部的结果输出。
回答3:在java中,有mybatis这样的框架来处理类似参数个数不确定的请求,具体用法可以自己百度。如果php中没有类似的框架,最好的是自己写一个拼接sql字符串、绑定变量的方法,php不熟悉,写一个示例js代码:第一参数为不带任何条件的sql语句(如select * from table1),第二个参数为key-value类型的参数值
function executeSql(sql, params) { var sql_text = sql; var sql_where = []; var sql_params = []; for (var key in params) { if (params[key] !== null || params[key] !== undefined) { sql_where.push(key + ’=?’); sql_params.push(params[key]); } } if (sql_where.length > 0) { sql_text += ’ WHERE ’ + sql_where.join(’ AND ’); } stmt = $pdo->prepare(sql_text); stmt->execute(sql_params);}回答4:
SELECT * FROM shop;
where子句可选
回答5:SELECT * FROM shop;
回答6:select * from shop where id like ’%’
回答7:SELECT * FROM TABLE_NAME //不加查询条件也是可以的
相关文章:
1. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题2. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)3. mysql - SQL操作时间的函数?4. MYSQL新建用户设置可以远程访问的问题5. javascript - 用表单提交两个时间段请求后台返回对应数据时出现的一些问题!6. angular.js - angularjs的自定义过滤器如何给文字加颜色?7. java - mybatis怎么实现在数据库中有就修改,没有就添加8. node.js - nodejs和前端JavaScript 字符串处理结果不一样是什么原因?9. docker api 开发的端口怎么获取?10. 正则表达式 - python pandas的sep参数问题
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)