Select all where [first letter starts with B]
MysqlMysql Problem Overview
This is a follow up question to my previous one. I want to write a MYSQL statement that echoes every entry that starts with letter 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?category=b
<?php include 'includes/header.php' ?>
<?php getCategory(); ?>
<?php include 'includes/footer.php' ?>
Like that I guess. And then one for every letter of the alphabet, and one with misc (numbers etc)
Mysql Solutions
Solution 1 - Mysql
SELECT author FROM lyrics WHERE author LIKE 'B%';
Make sure you have an index on author
, though!
Solution 2 - Mysql
This will work for MYSQL
SELECT Name FROM Employees WHERE Name REGEXP '^[B].*$'
In this REGEXP stands for regular expression
and
this is for T-SQL
SELECT Name FROM Employees WHERE Name LIKE '[B]%'
Solution 3 - Mysql
SQL Statement:
SELECT * FROM employee WHERE employeeName LIKE 'A%';
Result:
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
Solution 4 - Mysql
You can use:
WHERE LEFT (name_field, 1) = 'B';
Solution 5 - Mysql
Following your comment posted to ceejayoz's answer, two things are messed up a litte:
-
$first
is not an array, it's a string. Replace$first = $first[0] . "%"
by$first .= "%"
. Just for simplicity. (PHP string operators) -
The string being compared with
LIKE
operator should be quoted. ReplaceLIKE ".$first."")
byLIKE '".$first."'")
. (MySQL String Comparison Functions)