Làm cách nào để sử dụng like với biến trong MySQL?

Điều gì sẽ xảy ra nếu tôi có tên biến là $value_id và tôi muốn nó được sử dụng trong một truy vấn như trên thì làm cách nào để thực hiện điều đó bằng cách sử dụng Nhà xuất bản dữ liệu của WP Data Access thông qua Truy vấn tùy chỉnh???

Đang xem 12 trả lời - 1 đến 12 [trong tổng số 12]

  • Người đóng góp plugin Kim L

    [@kimmyx]

    Xin chào @mwambembela,

    Truy vấn của bạn sẽ giống như thế này

    SELECT first_name, last_name, phone_mobile, postcode, trade_type FROM customer WHERE [area_id = '$value_id'] AND [trade_id = '$value_tradeid']

    Cho chúng tôi biết nếu bạn có nhiều câu hỏi

    Trình bắt đầu chủ đề mwambembela

    [@mwambembela]

    Xin chào @kimmyx, tôi đã thử các mã bên dưới của mình như bạn đã giải thích trong các mã ở trên nhưng thật tệ là nó không thành công

    Đây là truy vấn của tôi dưới đây
    SELECT P.ID, MAX[IF[PM.meta_key = 'first_name', PM.meta_value, NULL]] AS Name, MAX[IF[PM.meta_key = 'last_name', PM.meta_value, NULL]] AS Last, MAX[IF[PM.meta_key = 'Gender', PM.meta_value, NULL]] AS Gender, MAX[IF[PM.meta_key = 'Department', PM.meta_value, NULL]] AS Department, MAX[IF[PM.meta_key = 'position_title', PM.meta_value, NULL]] AS Dpt, MAX[IF[PM.meta_key = 'region', PM.meta_value, NULL]] AS Region, MAX[IF[PM.meta_key = 'district_dar', PM.meta_value, NULL]] AS District, MAX[IF[PM.meta_key = 'status_av', PM.meta_value, NULL]] AS Status FROM wp_users AS P LEFT JOIN wp_usermeta AS PM on PM.user_id = P.ID WHERE P.ID in [select user_id from wp_usermeta where meta_key='Department' and [meta_value = '$dept']] and P.ID in [select user_id from wp_usermeta where meta_key='status_av' and meta_value = 'on'] group by P.ID

    Tên biến là $dept trong giá trị meta bên dưới

    Và đây là cách tôi khai báo nó trong hàm. php để nó có thể truy cập được trên trang web

    global $current_user;
          get_currentuserinfo[];
          $dept = $current_user->Department;
          

    Bạn nghĩ tôi đang làm sai ở đâu ??
    Giá trị $dept từ các chức năng được cho là được sử dụng trong truy vấn khi liệt kê dữ liệu

    Thanks

    • Câu trả lời này đã được sửa đổi 3 tháng trước bởi mwambembela .
    • Câu trả lời này đã được sửa đổi 3 tháng trước bởi mwambembela .
    • Câu trả lời này đã được sửa đổi 3 tháng trước bởi mwambembela .

    Tác giả plugin Lập trình viên đầy nhiệt huyết Peter

    [@peterschulznl]

    Xin chào @mwambembela,

    Không thể sử dụng biến PHP như $dept trực tiếp trong truy vấn. Biến $dept của bạn có sẵn trong PHP nhưng không có trong cơ sở dữ liệu nơi truy vấn của bạn được thực thi

    Có một số cách để giải quyết vấn đề này. Một cách là làm cho biến của bạn có sẵn trong cơ sở dữ liệu dưới dạng biến phiên. Trong trường hợp đó, tên biến của bạn sẽ thay đổi thành @dept. Bạn có thể tìm thấy một ví dụ trên trang này
    https. //wpdataaccess. com/2022/08/18/wordpress-user-id-in-sql/
    xem phần. Cần thêm giá trị WordPress trong SQL?

    Một cách khác là sử dụng tham số shortcode. Tính năng này được giải thích ở đây
    https. //wpdataaccess. com/docs/data-publisher/static-filters/
    Xin lưu ý rằng bạn cần tạo chế độ xem cho truy vấn của mình để sử dụng các bộ lọc tĩnh. Loại bộ lọc này yêu cầu bạn cung cấp tên cột để thêm bộ lọc

    Bạn cũng có thể sử dụng tham số URL như được giải thích tại đây
    https. //wpdataaccess. com/docs/data-publisher/url-parameters/
    Tính năng này cũng yêu cầu bạn lưu truy vấn của mình dưới dạng dạng xem

    Không giúp đỡ à?

    Thanks,
    Peter

    Trình bắt đầu chủ đề mwambembela

    [@mwambembela]

    Cảm ơn @peterschulznl hãy để tôi tham gia và xem nó sẽ ra sao

    Trình bắt đầu chủ đề mwambembela

    [@mwambembela]

    Xin chào @peterschulznl lại là tôi đây

    Tôi đã thử sử dụng Phương thức biến phiên,
    Vì vậy, trong cơ sở dữ liệu của tôi, tôi có một bảng tên là wp_users, tôi đã thực hiện truy vấn này select * from wp_users nó liệt kê tất cả các cột trong bảng cùng với giá trị của chúng, sau đó tôi thêm Mệnh đề WHERE truy vấn đọc như thế này select * from wp_users where ID = @wpda_wp_user_id nhưng thật lạ khi tôi thêm Mệnh đề WHERE không có bất kỳ dữ liệu nào . Đâu có thể là vấn đề?

    https. //prnt. sc/hL9isdtXtumZ

    mong muốn được nghe từ bạn

    Trình bắt đầu chủ đề mwambembela

    [@mwambembela]

    Và đây là cách tôi đã gán Giá trị Bộ phận cho Biến phiên của @$dept, nhưng ngay cả khi tôi sử dụng truy vấn Biến phiên của @$dept thì nó cũng không trả lại kết quả gì

    add_action[
    	'wpda_dbinit',
    	function[ $wpdadb ] {
    		if [ null !== $wpdadb ] {
    			$suppress_errors = $wpdadb->suppress_errors[ true ];
    			$current_user    = wp_get_current_user[];
    			$wpdadb->query[ 'set @dept = "' . $current_user->Department . '"' ];
    			$wpdadb->suppress_errors[ $suppress_errors ];
    		}
    	},
    	10,
    	1
    ];

    Tác giả plugin Lập trình viên đầy nhiệt huyết Peter

    [@peterschulznl]

    Xin chào @mwambembela,

    Bạn nhận được phản hồi gì trong Trình tạo truy vấn cho những truy vấn này
    chọn * từ wp_users trong đó ID = @wpda_wp_user_id
    chọn @wpda_wp_user_id

    Đối tượng $current_user không chứa biến Department. Vì vậy, hành động của bạn sẽ không hoạt động vì $current_user->Bộ phận không tồn tại. Trong trường hợp của bạn, bạn cần lấy giá trị đó từ một nguồn khác

    Có lẽ bạn nên sửa vấn đề đầu tiên trước. Bạn đang sử dụng phiên bản DBMS nào?

    Thanks,
    Peter

    Trình bắt đầu chủ đề mwambembela

    [@mwambembela]

    Phản hồi tôi nhận được khi chạy truy vấn này

    select * from wp_users where ID = @wpda_wp_user_id
    select @wpda_wp_user_id

    trong Trình tạo truy vấn, thông báo cho biết

    add_action[
    	'wpda_dbinit',
    	function[ $wpdadb ] {
    		if [ null !== $wpdadb ] {
    			$suppress_errors = $wpdadb->suppress_errors[ true ];
    			$current_user    = wp_get_current_user[];
    			$wpdadb->query[ 'set @dept = "' . $current_user->Department . '"' ];
    			$wpdadb->suppress_errors[ $suppress_errors ];
    		}
    	},
    	10,
    	1
    ];
    1

    Nếu tôi cần lấy giá trị của $current_user từ một nguồn khác, làm cách nào để thực hiện điều đó, vui lòng tư vấn

    Tôi đang sử dụng localhost với MySQL phiên bản 5. 2 nếu tôi không sai

    Tác giả plugin Lập trình viên đầy nhiệt huyết Peter

    [@peterschulznl]

    Xin chào @mwambembela,

    mysql 5. 2 là rất cũ. Có thể cho bạn để cập nhật? . 2 hỗ trợ các biến phiên?

    Làm cách nào để chuyển biến giống như trong MySQL?

    Sử dụng hàm CONCAT[], chúng ta có thể làm việc với biến người dùng trong mệnh đề LIKE . Cú pháp như sau. đặt @anyVariableName='anyValue'; .

    Làm cách nào để sử dụng toán tử like với biến trong SQL?

    Cách sử dụng Toán tử Like với VARIABLE .
    Khai báo @Keywords varchar[50]
    đặt @Keywords = 'YourString'
    LỰA CHỌN *
    TỪ sản phẩm
    Ở ĐÂU [ID danh mục = @CategoryId] VÀ
    [Từ khóa Thích '%' + @Từ khóa + '%' ]

    %s và %D trong MySQL là gì?

    %d – đối số được coi là số nguyên và được trình bày dưới dạng số thập phân [có dấu]. %s – đối số được coi là và được trình bày dưới dạng một chuỗi . trong các ví dụ của bạn, $slug là một chuỗi và $this->id là một số nguyên.

    Chúng ta có thể sử dụng like với in trong MySQL không?

    Bạn có thể sử dụng LIKE với toán tử OR hoạt động giống như toán tử IN .

Chủ Đề