MySQL 查询具有多列但完全匹配?

标签 mysql jquery-ui

我的表名为 Device_tbl,其中包含以下列:

  • 图片
  • 制造商
  • 型号

我的一些制造商的示例是:

  • 索尼爱立信
  • 宏达电
  • 摩托罗拉

我的一些模型的示例是:

  • 一个X
  • 一个S
  • Xperia Arc
  • Xperia X10
  • Xoom

我遇到的问题是我将制造商和型号的组合传递到查询中。例如:

SELECT Image, Manufacturer, Model FROM Device_tbl WHERE Manufacturer LIKE 'Sony Ericsson Xperia Arc' OR Model LIKE 'Sony Ericsson Xperia Arc' 

如您所见,这不会返回任何内容。我所追求的是它只返回上面结果的完全匹配,但是如果我搜索 Son,它会返回制造商或型号中存在 Son 的所有结果。

可能的解决方案?

如果有任何帮助,我正在使用 JQuery 自动完成功能来生成全名。这些建议是从组合了制造商和型号的数组生成的。不确定是否有办法在后台拆分它以便搜索更准确?

<?php
mysql_select_db($database_database_connection, $database_connection);
$query = "SELECT * FROM Device_tbl";
$result=mysql_query($query, $database_connection) or die(mysql_error());
$findrow = array();
while($row = mysql_fetch_assoc($result)){
    $manufac = $row['Manufacturer'];
    $mod = $row['Model'];
    $string = $manufac.' '.$mod;
    $findrow[] = $string;
}

?>


<script type="text/javascript">
$(document).ready(function() {

var availableTags = <?php echo json_encode($findrow);?>;

  $("#search_input").watermark("Begin Typing to Search");
  $('#searchresultdata').append(sendSelected);

    $( "#search_input" ).autocomplete({
        source: availableTags,
        select: function(event, ui) {
          sendSelected(ui.item.value);
          }
        });

function sendSelected(_val){
    var search_input = _val;
    if (search_input =='') search_input ='*';
    var dataString = 'keyword='+search_input;

    if (search_input.length > 2 || search_input=='*') {
       $.ajax({
            type: "GET",
            url: "core/functions/searchdata.php",
            data: dataString,
            success: function(server_response) {
                $('#searchresultdata').empty();
                $('#searchresultdata').append(server_response);
                $('span#category_title').html(search_input);
            }
        });
    }
}
});
</script>   

最佳答案

您可以使用 CONCAT_WS() 例如

SELECT * FROM Device_tbl WHERE CONCAT_WS(' ', Manufacturer, Model) = 'Sony EricssonXperia Arc';

关于MySQL 查询具有多列但完全匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10548476/

相关文章:

mysql - my.cnf 更改 datadir,2 天仍然没有运气

php - 如何将数据库表中的 SQL 数据回显到 <select> 表单中?

mysql - 在 MySQL 中按 Unicode 范围搜索

javascript - jQuery sortable - 设置哪些 div 包含在其父容器中

javascript - jQueryUI : restrict container height on drag and drop element

mysql - 如何在 MySql SELECT 语句中正确使用 CAST 函数?

php - 在 mysql 中使用 REGEXP 时出错

jQuery datetimepicker 太多递归错误

javascript - 显示超出定义的 MinDate MaxDate 限制的日期

jQuery 自动完成自动对焦跟不上