查询搜索字母到字母?

Nay*_*ila 0 php search codeigniter where

我正在根据搜索框中输入的字母提供的建议进行搜索.

例:

我在数据库中有这样的话:salam, salavat, sabos, sandal, sefid, siah and ...
我在搜索框中输入:s- 显示这个词 - > salam, salavat, sabos, sandal, sefid, siah
现在如果键入:sa- 显示这个词 - > salam, salavat, sabos, sandal,
如果键入:sala- 显示这个词 - > salam, salavat
如果键入:salam- 显示这个词 - > salam

我正在使用jQuery事件.keyup()(keyup工作正常)并在后端使用codeigniter(在codeigniter中查询而不是我想要的).

查看我的查询(在此查询中,$find包含已输入的序列,我使用like关键字在数据库中进行搜索):

$find = $this->input->post('find');
    $where  =   "date LIKE '$find' OR
            name LIKE '$find' OR 
            star LIKE '$find' OR
            address LIKE '$find' OR
            number_phone LIKE '$find' OR 
            type LIKE '$find' OR
            service LIKE '$find' OR
            units LIKE '$find' OR
            useradmin LIKE '$find'";

$query = $data['results'] = $this->db->query("SELECT @rownum:=@rownum+1 rownum, t.*
        FROM (
        SELECT *
        FROM my_table
        WHERE 
            $where
        ORDER BY id desc
        LIMIT $offset, $coun_page       
        ) t,
        (SELECT @rownum:=0) r");
Run Code Online (Sandbox Code Playgroud)

以下查询有效,但由于以下原因我无法使用它rownum:

$this->db->order_by("id", "desc")->like('name', $name)->get('my_table')
Run Code Online (Sandbox Code Playgroud)

我如何获得建议rownum

nik*_*org 5

LIKE要将子字符串与查询匹配,您需要使用通配符,在SQL中,它是百分比字符%.

例如

WHERE foo LIKE '%bar%'会找到列foo包含子字符串的所有行'bar'.

WHERE foo LIKE 'bar%'会找到列foo以子字符串开头的所有行'bar'.

WHERE foo LIKE '%bar'会找到列foo以子字符串结尾的所有行'bar'.

PS.在后面的刻度中包含列名称总是一个好主意,以避免与(可能)保留名称冲突,例如datetype.

SELECT `column1`, `column2` FROM `table` WHERE `column3` = 'value'
Run Code Online (Sandbox Code Playgroud)

  • 不要在一个问题中提出多个问题.当您以满足您的方式回答原始问题时,请将其关闭(批准正确答案)并将后续问题作为新问题提出. (2认同)