如何按非字母顺序显示MySQL记录?

时间:2015-08-05 07:10:22

标签: php mysql cakephp

我遇到了MySQL的查询。我需要使用字母顺序查看所有记录。

这是我的代码 -

$alphabetsArr = array('#', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');

foreach($alphabetsArr as $alpha) {
        $conditions = array('CreateListing.is_complete' => 1, 'BuilderType.builder_type LIKE'=>$alpha.'%');
        $alphabets[$alpha] = $this->CreateListing->find('all', array('conditions' => $conditions, 'group' => array('CreateListing.builder'), 'contain' => array('BuilderType'), 'fields' => $fields, 'order' => $order, 'limit' => 50));
       //$alphabets[$alpha] = mysql_fetch_array(mysql_query("SELECT * FROM create_listings WHERE name LIKE '".$alpha."%'"));
 }


<?php
    foreach ($alphabets as $key => $letter) {
        if (count($letter)) {
        ?>
        <div class="make-group"><a id="<?php echo $key; ?>-make"></a><h3><?php echo $key; ?></h3>
            <div class="make-list columnizer-3">
                <?php foreach ($letter as $brandname) { ?>
                <div><a href="<?php echo $this->webroot.'listing/brand:'.$brandname['BuilderType']['seo'];?>"><?php echo $brandname['BuilderType']['builder_type']; ?></a></div>
    <?php } ?>
                 </div>
                 <br class="clear">
            </div>
        <?php }
    }
 ?>

我的代码成功运行。但是如果我在搜索非字母文本时遇到一个问题。有#所以我想显示所有以Numberany SymoblSpecial character

开头的非字母文字

如何在单个查询中搜索除A-Z之外的文本?

NB - 这是CakePHP代码。所以不要担心这段代码。我需要查询。如果你知道核心php,那么你可以使用核心php发布你的答案

2 个答案:

答案 0 :(得分:1)

您可以使用带有否定RLIKE的{​​{1}},它将匹配名称列并返回不以a开头的行所有字母

NOT

DEMO

答案 1 :(得分:0)

你也可以试试这个

SELECT * FROM table WHERE first_name REGEXP '^[^A-Za-z]';