![](/img/trans.png)
[英]Selecting all from column in MySQL database table that uses WHERE clause
[英]WHERE clause in MySQL for selecting all
我在PHP
有一个脚本,该脚本使用Select
& Where
子句从Mysql
数据库中选择数据。
$lrn= "PU2017LN11K";
$stmt = $user_home->runQuery('SELECT * FROM mcq WHERE LRN = :crn ORDER BY LRN,Sr ASC ');
$stmt->bindParam(':crn',$lrn);
$stmt->execute();
现在如何使用WHERE LRN = :crn
编写代码脚本,以便从所有LRN
选择代码。
我试过了:
$lrn= "*";
$stmt = $user_home->runQuery('SELECT * FROM mcq WHERE LRN = :crn ORDER BY LRN,Sr ASC ');
$stmt->bindParam(':crn',$lrn);
$stmt->execute();
但是没有显示任何结果!
如果我想显示所有结果,则跳过WHERE
子句很容易,但是$lrn
的值将由$_GET
方法定义。
处理此问题的正常方法是:
$lrn= "*";
$stmt = $user_home->runQuery('SELECT * FROM mcq WHERE LRN = :crn OR :crn = \'*\' ORDER BY LRN, Sr ASC ');
或者,您可以使用LIKE
:
$lrn = "%";
$stmt = $user_home->runQuery('SELECT * FROM mcq WHERE LRN LIKE :crn ORDER BY LRN, Sr ASC ');
您需要所有行,不要使用where子句。 另外,如果您必须使用where(代码中的某些内容或思维/设计要求),那么您也可以说“ where 1”(类似于phpMyAdmin出于某种原因一直在做事情的方式)。
使用它作为您的where子句:
WHERE LRN = CASE WHEN :crn = '*' THEN LRN else :crn END
这样,当提供的:crn为'*'时,您将获得所有记录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.