2012-04-29 5 views
7

Tôi muốn lấy nội dung từ một hàng trong cơ sở dữ liệu Postgresql và so sánh phiên bản chữ thường của nó với phiên bản chữ thường của đầu vào người dùng để kiểm tra xem nó có tồn tại trong cơ sở dữ liệu hay không.Chữ thường Postgresql để so sánh dữ liệu

tôi đã cố gắng:

"SELECT LOWER(name) FROM user_names WHERE name LIKE '%$search%' ORDER BY name ASC" 

nhưng điều đó làm cho truy vấn không làm việc ở tất cả.

EDIT

Tôi cố gắng để thực hiện một autocomplete jquery UI như ở đây: http://jqueryui.com/demos/autocomplete/#remote cho hộp tìm kiếm (đối với tên)

sử dụng javascript và php.

mã php:

đang
$search = ($_GET['term']); 
     if (!$con) 
     { die('Could not connect: ' . pg_last_error());} 

     else 
     { 

     $sql = "SELECT name FROM users_table WHERE name LIKE '%$search%' ORDER BY name ASC"; 
     $result = pg_query($sql); 
     $json = '['; 
     $first = true; 
     while ($row = pg_fetch_array($result)) 
     { 

     if (!$first) { $json .= ','; } else { $first = false; } 
     $json .= '{"value":"'.$row['name'].'"}'; 
    } 
    $json .= ']'; 
    echo $json; 

    exit(); 

    } 

JavaScript:

$(document).ready(function() 
    { 
     $('#auto').autocomplete(
     { 
      source: "./file.php", 
      minLength: 3 

     }) 

}) 

tất cả trên công việc tuyệt vời .. giống hệt như trong Demo đây: http://jqueryui.com/demos/autocomplete/#remote

vấn đề của tôi là tên trong cơ sở dữ liệu được lưu trữ trong chữ hoa (ví dụ: LORI) và tất nhiên người dùng muốn chèn chữ thường vào hộp tìm kiếm để tìm kiếm tên (ví dụ: lori). nhưng kể từ khi nó được lưu trữ trong chữ hoa, tôi cần phải chuyển đổi nó.

tôi đã cố gắng như gợi ý của bạn:

$sql = "SELECT LOWER(name) FROM users_table WHERE name ILIKE '%$search%' ORDER BY name ASC"; 

sau đó tôi nhận được một giọt rỗng danh sách xuống! khá lạ!

cảm ơn trước.

Trả lời

11

Google is your friend:

SELECT LOWER(name) FROM user_names 
WHERE name ILIKE '%$search%' ORDER BY name ASC 
+0

nhờ nhưng tôi vẫn có một mảng trống từ JSON nếu tôi sử dụng LOWER – Shadin

+0

@Shadin Xin lỗi, tôi đã không phải là rất rõ ràng trong bài viết của tôi. Đề nghị là thay đổi 'LIKE' thành' ILIKE' – dwurf

+0

có tôi nhận thấy điều đó và thử nó. tôi không undersatnd lý do tại sao tôi có một mảng trống – Shadin