选择全部位置[第一个字母以B开头]
问题描述:
这是我之前的一个跟进问题。我想写呼应所有以字母B开头的条目mysql的语句选择全部位置[第一个字母以B开头]
Function.php
function getCategory() {
$query = mysql_query("SELECT author FROM lyrics WHERE author [starts with letter B]") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) { ?>
<p><a href="##"><?= $row['author']; ?></a></p>
<?php }
Category.php?类别= B
<?php include 'includes/header.php' ?>
<?php getCategory(); ?>
<?php include 'includes/footer.php' ?>
喜欢,我猜。再一个字母表中的每一个字母,和一个与杂项(编号等)
答
SELECT author FROM lyrics WHERE author LIKE 'B%';
确保您的author
有一个指标,但!
答
按照您的评论发布到ceejayoz的答案,两件事情都搞砸豆蔻:
$first
不是一个数组,它是一个字符串。用$first .= "%"
代替$first = $first[0] . "%"
。只是为了简单。 (PHP string operators)应该引用与
LIKE
运算符进行比较的字符串。用LIKE '".$first."'")
代替LIKE ".$first."")
。 (MySQL String Comparison Functions)
答
这将为MYSQL
SELECT Name FROM Employees WHERE Name REGEXP '^[B].*$'
工作,在这个正则表达式表示正则表达式
和
这是T-SQL
SELECT Name FROM Employees WHERE Name LIKE '[B]%'
答
SQL声明:
SELECT * FROM employee WHERE employeeName LIKE 'A%';
结果:
Number of Records: 4
employeeID employeeName employeeName Address City PostalCode Country
1 Alam Wipro Delhi Delhi 11005 India
2 Aditya Wipro Delhi Delhi 11005 India
3 Alok HCL Delhi Delhi 11005 India
4 Ashok IBM Delhi Delhi 11005 India
好感谢,那是再容易预期。我遇到一个奇怪的问题:你的版本效果很好。但只要我改变它就像:'$ first = $ _GET ['category']; \t $ first = $ first [0]。 “%”; $(“SELECT author”FROM lyrics WHERE author LIKE“。$ first。”“)或die(mysql_error());'它不再工作。即使我改变'$ first =“b%”;'它不起作用。 – user1333327 2012-04-14 20:33:47
它不是奇怪的问题,它是你对事物的误解。 %不适用于=。如果你使用相等的话,那么当你使用=“b%”时你必须提供完全匹配,它发现DB中的值b%不是以b开头的。要找到起始值,您必须使用like。 – Shehzad 2012-04-14 22:19:30
上面的php容易受到SQL注入的影响。请使用准备好的陈述和占位符。 – 2012-04-15 12:20:24