繁体   English   中英

MySQL中的WHERE子句,用于选择全部

[英]WHERE clause in MySQL for selecting all

我在PHP有一个脚本,该脚本使用SelectWhere子句从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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM