选择所有[首字母以B开头]

use*_*327 53 mysql

这是我之前的一个跟进问题.我想写一个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 }
Run Code Online (Sandbox Code Playgroud)

Category.php?类别= B

<?php include 'includes/header.php' ?>
<?php getCategory(); ?>
<?php include 'includes/footer.php' ?>
Run Code Online (Sandbox Code Playgroud)

就像我猜的那样.然后一个字母表中的每个字母,一个带有misc(数字等)

cee*_*yoz 96

SELECT author FROM lyrics WHERE author LIKE 'B%';
Run Code Online (Sandbox Code Playgroud)

不过,请确保您有索引author!

  • 它不是一个奇怪的问题,你对事物的误解.%不适用于=.如果你使用等于那么你必须在使用="b%"时提供完全匹配,它发现数据库中的值b%没有以b开头.要找到起始值,您必须使用like. (2认同)
  • @AaronBrown user1333327的代码不是我的。可能想澄清一下。 (2认同)

小智 15

这适用于MYSQL

SELECT Name FROM Employees WHERE Name REGEXP '^[B].*$'
Run Code Online (Sandbox Code Playgroud)

在此REGEXP代表正则表达式

这是针对T-SQL的

SELECT Name FROM Employees WHERE Name LIKE '[B]%'
Run Code Online (Sandbox Code Playgroud)


小智 7

SQL语句:

 SELECT * FROM employee WHERE employeeName LIKE 'A%';
Run Code Online (Sandbox Code Playgroud)

结果:

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
Run Code Online (Sandbox Code Playgroud)


小智 7

您可以使用:

WHERE LEFT (name_field, 1) = 'B';
Run Code Online (Sandbox Code Playgroud)