MySQL的第一个字符是数字

时间:2017-09-18 16:40:14

标签: php mysqli

我有一个下拉列表:

<form name="alphasearch" action="ialphalist.php" method="get">
<select style='font-size:26px;height:30px;width:540px;' name='alphasearch' onchange='this.form.submit()'>
   <option value="">Select the First letter of the Business Name</option>
   <option value="REGEXP'^[0-9]'">0-9</option>
   <option value="a%">A</option>
   <option value="b%">B</option>
   <option value="c%">C</option>

这是ialphalist.php的一个片段:

list($categoriesRecords, $categoriesMetaData) = getRecords(array(
    'tableName'   => 'categories',
    'perPage'     => '5',
    'loadUploads' => false,
    'allowSearch' => true,
    'where'       => "Bus_name LIKE '$_GET[alphasearch]'",
    'orderBy'    => 'Bus_name',

字母(A,B,C等)按预期显示结果,如果第一个字符是数字,我试图让它工作。我认为使用&#34; REGEXP&#34;声明应该工作,也许我有格式错误?我需要做些什么才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

试试这个: -

list($categoriesRecords, $categoriesMetaData) = getRecords(array(
    'tableName'   => 'categories',
    'perPage'     => '5',
    'loadUploads' => false,
    'allowSearch' => true,
    'where'       => "Bus_name REGEXP '^[a-zA-Z].*'",
    'orderBy'    => 'Bus_name',

编辑:通过网页指定条件

$regex = "'^".$_GET[alphasearch][0]."'";
    list($categoriesRecords, $categoriesMetaData) = getRecords(array(
        'tableName'   => 'categories',
        'perPage'     => '5',
        'loadUploads' => false,
        'allowSearch' => true,
        'where'       => "Bus_name REGEXP $regex",
        'orderBy'    => 'Bus_name',

这将获得以字母(小或高)开头的所有总线名称。

[a-zA-Z] =&gt;字母

。 =&GT;单个字符(数字,字母或其他)

。* =&gt;第一个字母后的字符可以是零或更多。

希望它有所帮助。