我在PHP
中有一个脚本,该脚本使用Mysql
&来自Select
数据库中选择数据。 Where
条款。
$lrn= "PU2017LN11K";
$stmt = $user_home->runQuery('SELECT * FROM mcq WHERE LRN = :crn ORDER BY LRN,Sr ASC ');
$stmt->bindParam(':crn',$lrn);
$stmt->execute();
现在如何编写代码脚本,以便它使用LRN
从所有WHERE LRN = :crn
中进行选择。
我试过了:
$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
方法定义。
答案 0 :(得分:1)
处理此问题的正常方法是:
$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 ');
答案 1 :(得分:0)
您想要所有行,不要使用where子句。或者,如果您必须使用where(代码中的某些内容或思考/设计需要它),那么您也可以说"其中1" (就像phpMyAdmin一直在做的事情一样,无论什么原因)。
答案 2 :(得分:0)
将此用作where子句:
WHERE LRN = CASE WHEN :crn = '*' THEN LRN else :crn END
当提供的:crn是' *'你将获得所有记录。