62

这是我上一个问题的后续问题。我想写一个 MYSQL 语句来回显每个以字母 B 开头的条目。

函数.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?category=b

<?php include 'includes/header.php' ?>
<?php getCategory(); ?>
<?php include 'includes/footer.php' ?>

我猜是这样的。然后一个用于字母表的每个字母,一个用于杂项(数字等)

4

5 回答 5

114
SELECT author FROM lyrics WHERE author LIKE 'B%';

不过,请确保您有一个索引author

于 2012-04-14T20:09:08.973 回答
18

这适用于 MYSQL

SELECT Name FROM Employees WHERE Name REGEXP '^[B].*$'

在这个 REGEXP 代表正则表达式

这是针对 T-SQL 的

SELECT Name FROM Employees WHERE Name LIKE '[B]%'
于 2014-07-06T05:13:02.063 回答
10

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
于 2016-09-21T05:53:06.793 回答
9

您可以使用:

WHERE LEFT (name_field, 1) = 'B';
于 2016-09-29T09:23:00.043 回答
2

在您对 ceejayoz 的回答发表评论之后,有两件事有点混乱:

  1. $first不是数组,而是字符串。替换$first = $first[0] . "%"$first .= "%"。只是为了简单。(PHP 字符串运算符

  2. LIKE运算符比较的字符串应加引号。替换LIKE ".$first."")LIKE '".$first."'")。( MySQL 字符串比较函数)

于 2012-04-14T21:43:20.240 回答