Hướng dẫn how do i search for a word in mysql? - làm cách nào để tìm kiếm một từ trong mysql?

Tôi có chuỗi trong mysql db như dưới đây

"Good Mayer Brown Corporate & Securities"
"Three Mayer Brown Good & Securities"
"Three Mayer Brown Corporate & Good"
"Three Mayer Brown Goodies & Securities"

Tôi cần tìm từ chính xác không giống như từ khóa

    "Good Mayer Brown Corporate & Securities"
    "Three Mayer Brown Good & Securities"
    "Three Mayer Brown Corporate & Good" 
8. Đây là ví dụ,

Tôi cần chọn hàng với từ khóa

    "Good Mayer Brown Corporate & Securities"
    "Three Mayer Brown Good & Securities"
    "Three Mayer Brown Corporate & Good" 
9. Đây sẽ là chọn 3 hàng đầu tiên. Cái cuối cùng có những từ bổ sung như
SELECT * FROM table WHERE myword LIKE '% Good %'  OR myword LIKE 'Good%' OR myword LIKE '% Good'
0 ở đây là kết quả dự kiến ​​của tôi

    "Good Mayer Brown Corporate & Securities"
    "Three Mayer Brown Good & Securities"
    "Three Mayer Brown Corporate & Good" 

Tôi đã thử truy vấn dưới đây.

SELECT * FROM table WHERE myword LIKE '% Good %'  OR myword LIKE 'Good%' OR myword LIKE '% Good'

Nhưng điều này không làm việc cho tôi.

hỏi ngày 19 tháng 3 năm 2015 lúc 10:39Mar 19, 2015 at 10:39

0

SELECT * FROM table WHERE myword REGEXP '^.*GOOD.*$

Bạn có thể sử dụng

SELECT * FROM table WHERE myword LIKE '% Good %'  OR myword LIKE 'Good%' OR myword LIKE '% Good'
1 để làm điều này. Hoặc

SELECT * FROM table WHERE myword REGEXP '[[::]]'

Sử dụng với ________ 22.See Demo. //www.sqlfiddle.com/#!9/e1b9d/6/0

Đã trả lời ngày 19 tháng 3 năm 2015 lúc 10:41Mar 19, 2015 at 10:41

vksvksvks

66K10 Huy hiệu vàng89 Huy hiệu bạc122 Huy hiệu Đồng10 gold badges89 silver badges122 bronze badges

1

Tại sao không sử dụng tìm kiếm văn bản đầy đủ, điều này có nghĩa là cho loại tìm kiếm này theo cách được tối ưu hóa với hàng tấn tính năng, thay vì làm như thẻ hoang dã chậm và ngay cả với cột được lập chỉ mục sử dụng

SELECT * FROM table WHERE myword LIKE '% Good %'  OR myword LIKE 'Good%' OR myword LIKE '% Good'
3 không ảnh hưởng đến chỉ mục. Nếu bạn không biết làm thế nào để làm điều đó xem hướng dẫn sử dụng. Và đây là một ví dụ mẫu cho bạnFull Text Search, which is meant for this kind of search in an optimized way with tons of features, instead of doing like wild card which is slow and even with indexed column using
SELECT * FROM table WHERE myword LIKE '% Good %'  OR myword LIKE 'Good%' OR myword LIKE '% Good'
3 makes no effect of index. If you do not know how to do it see the manual. And here is a sample example for you

mysql> create table test [search varchar[200],fulltext key[search]] engine=myisam;
Query OK, 0 rows affected [0.08 sec]

mysql> insert into test values ['Good Mayer Brown Corporate & Securities'],['Three Mayer Brown Good & Securities'],['Three Mayer Brown Corporate & Good'],['Three Mayer Brown Goodies & Securities'];
Query OK, 4 rows affected [0.02 sec]
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from test where match[search] against ['good' in boolean mode]; 
+-----------------------------------------+
| search                                  |
+-----------------------------------------+
| Good Mayer Brown Corporate & Securities |
| Three Mayer Brown Good & Securities     |
| Three Mayer Brown Corporate & Good      |
+-----------------------------------------+
3 rows in set [0.00 sec]

Đã trả lời ngày 19 tháng 3 năm 2015 lúc 10:47Mar 19, 2015 at 10:47

MySQL có hỗ trợ cho việc lập chỉ mục và tìm kiếm toàn văn bản: Chỉ mục toàn văn trong MySQL là một chỉ mục của FullText loại. Các chỉ mục toàn văn chỉ có thể được sử dụng với các bảng Innodb hoặc Myisam và chỉ có thể được tạo cho các cột char, varchar hoặc văn bản.

Grep trong mysql là gì?

Tìm kiếm tìm kiếm tài nguyên tài nguyên phổ biến [CRGREP] cho tên bảng/cột và các khớp dữ liệu và hỗ trợ MySQL.

Syntax:

LOCATE[substr,str]
LOCATE [search str, str, [position]]

Tranh luận

TênSự mô tả
Tìm kiếm strMột chuỗi sẽ được tìm kiếm.
strMột chuỗi sẽ được tìm kiếm.
Chức vụVị trí từ nơi [trong đối số thứ hai], việc tìm kiếm sẽ bắt đầu.

Sơ đồ cú pháp:

Phiên bản MySQL: 5.6

Trình chiếu video:

Trình duyệt của bạn không hỗ trợ video HTML5.

Trình bày bằng hình ảnh:

Ví dụ: Hàm MySQL định vị []

Câu lệnh MySQL sau đây trả về lần xuất hiện đầu tiên ‘ST, trong chuỗi‘ MyTestString. Vì phần phụ "ST" được tìm thấy ở vị trí thứ năm, chức năng trả về 5.

Code:

SELECT LOCATE['st','myteststring']; 

Đầu ra mẫu:

mysql> SELECT LOCATE['st','myteststring']; 
+-----------------------------+
| LOCATE['st','myteststring'] |
+-----------------------------+
|                           5 | 
+-----------------------------+
1 row in set [0.02 sec]

Ví dụ: Hàm MySQL định vị [] với vị trí bắt đầu

Câu lệnh sau đây trả về lần xuất hiện đầu tiên ‘ST, trong chuỗi‘ MyTestString, và việc tìm kiếm sẽ bắt đầu từ vị trí thứ 6 của chuỗi. Hàm trả về 7, vì ST phụ được tìm thấy ở vị trí thứ bảy.

Code:

    "Good Mayer Brown Corporate & Securities"
    "Three Mayer Brown Good & Securities"
    "Three Mayer Brown Corporate & Good" 
0

Đầu ra mẫu:

    "Good Mayer Brown Corporate & Securities"
    "Three Mayer Brown Good & Securities"
    "Three Mayer Brown Corporate & Good" 
1

Ví dụ: Hàm MySQL định vị [] với vị trí bắt đầu

Câu lệnh sau đây trả về lần xuất hiện đầu tiên ‘ST, trong chuỗi‘ MyTestString, và việc tìm kiếm sẽ bắt đầu từ vị trí thứ 6 của chuỗi. Hàm trả về 7, vì ST phụ được tìm thấy ở vị trí thứ bảy.

Code:

    "Good Mayer Brown Corporate & Securities"
    "Three Mayer Brown Good & Securities"
    "Three Mayer Brown Corporate & Good" 
2

Ví dụ: Hàm MySQL định vị [] bằng cách sử dụng bảng

Đầu ra mẫu:

    "Good Mayer Brown Corporate & Securities"
    "Three Mayer Brown Good & Securities"
    "Three Mayer Brown Corporate & Good" 
3

Ví dụ: Hàm MySQL định vị [] với vị trí bắt đầu

Câu lệnh sau đây trả về lần xuất hiện đầu tiên ‘ST, trong chuỗi‘ MyTestString, và việc tìm kiếm sẽ bắt đầu từ vị trí thứ 6 của chuỗi. Hàm trả về 7, vì ST phụ được tìm thấy ở vị trí thứ bảy.

Ví dụ: Hàm MySQL định vị [] bằng cách sử dụng bảng

Code:

    "Good Mayer Brown Corporate & Securities"
    "Three Mayer Brown Good & Securities"
    "Three Mayer Brown Corporate & Good" 
4

Ví dụ: Hàm MySQL định vị [] bằng cách sử dụng bảng

Đầu ra mẫu:

    "Good Mayer Brown Corporate & Securities"
    "Three Mayer Brown Good & Securities"
    "Three Mayer Brown Corporate & Good" 
5

Ví dụ: Hàm MySQL định vị [] với vị trí bắt đầu

    "Good Mayer Brown Corporate & Securities"
    "Three Mayer Brown Good & Securities"
    "Three Mayer Brown Corporate & Good" 
6

Câu lệnh sau đây trả về lần xuất hiện đầu tiên ‘ST, trong chuỗi‘ MyTestString, và việc tìm kiếm sẽ bắt đầu từ vị trí thứ 6 của chuỗi. Hàm trả về 7, vì ST phụ được tìm thấy ở vị trí thứ bảy.

Ví dụ: Hàm MySQL định vị [] bằng cách sử dụng bảng

Câu lệnh MySQL sau đây trả về các hàng đó từ bảng Nhà xuất bản nơi chuỗi tìm kiếm ‘AT AT tồn tại ít nhất một lần trong cột pub_name.

Bảng mẫu: Nhà xuất bản

Xem ví dụ

Ví dụ: Hàm MySQL định vị [] với mệnh đề WHERE LOAD_FILE
Next: LOWER

Câu lệnh MySQL sau đây trả về các hàng đó từ bảng Nhà xuất bản trong đó chuỗi tìm kiếm ‘AT hiện tại ít nhất một lần trong Cột pub_name. Trong tuyên bố này, vị trí thứ nhất bắt đầu tìm kiếm từ đầu chuỗi và việc tìm kiếm thứ hai bắt đầu từ vị trí thứ 16 của chuỗi.

Kịch bản PHP:: A full-text index in MySQL is an index of type FULLTEXT . Full-text indexes can be used only with InnoDB or MyISAM tables, and can be created only for CHAR , VARCHAR , or TEXT columns.

Grep trong mysql là gì?

Tìm kiếm tìm kiếm tài nguyên tài nguyên phổ biến [CRGREP] cho tên bảng/cột và các khớp dữ liệu và hỗ trợ MySQL.searches for table/column name and data matches and supports MySQL.

Bài Viết Liên Quan

Chủ Đề