質問編集履歴

2

目標とする検索窓の例を追加しました。

2021/04/22 07:49

投稿

hmom
hmom

スコア3

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  PHP、MySQLで検索機能を作成中です。
4
4
 
5
+
6
+
7
+ google等の検索窓のように、検索ワードをスペースで複数入力し検索するカタチを目指しています。
8
+
9
+
10
+
5
11
  二つのテーブルを結合して、複数カラムのどちらかに含まれる複数の検索ワード(AND検索)を照会する検索機能を実装したいと考えています。
6
12
 
7
13
 

1

テーブル構造と必要なカラムの内容、取得したいデータの具体例を追記しました。

2021/04/22 07:49

投稿

hmom
hmom

スコア3

test CHANGED
File without changes
test CHANGED
@@ -10,10 +10,96 @@
10
10
 
11
11
 
12
12
 
13
+ 例えば、下記のカラムの内容で「アカ テスト」と検索したときに、nameがアカでmessageにテストが含まれるpost_id1~3を取得したいです。
14
+
15
+
16
+
13
17
  初学者のため、質問の仕方等、的を得ていない部分もあると思いますが、教えていただけると嬉しいです。
14
18
 
15
19
 
16
20
 
21
+ ###テーブル構造とカラム
22
+
23
+ テーブル構造
24
+
25
+ テーブル Members
26
+
27
+ +-------------------+--------------+------+-----+-------------------+-----------------------------------------------+
28
+
29
+ | Field | Type | Null | Key | Default | Extra |
30
+
31
+ +-------------------+--------------+------+-----+-------------------+-----------------------------------------------+
32
+
33
+ | member_id | int | NO | PRI | NULL | auto_increment |
34
+
35
+ | name | varchar(255) | NO | | NULL | |
36
+
37
+ | email | varchar(255) | NO | | NULL | |
38
+
39
+ | password | varchar(100) | NO | | NULL | |
40
+
41
+ | icon | varchar(100) | YES | | NULL | |
42
+
43
+ | member_created_at | datetime | NO | | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
44
+
45
+ | member_update_at | datetime | NO | | CURRENT_TIMESTAMP | DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
46
+
47
+ +-------------------+--------------+------+-----+-------------------+-----------------------------------------------+
48
+
49
+
50
+
51
+ テーブル Post
52
+
53
+ +-----------+--------------+------+-----+-------------------+-------------------+
54
+
55
+ | Field | Type | Null | Key | Default | Extra |
56
+
57
+ +-----------+--------------+------+-----+-------------------+-------------------+
58
+
59
+ | post_id | int | NO | PRI | NULL | auto_increment |
60
+
61
+ | member_id | int | NO | | NULL | |
62
+
63
+ | message | varchar(560) | NO | | NULL | |
64
+
65
+ | post_date | datetime | NO | | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
66
+
67
+ +-----------+--------------+------+-----+-------------------+-------------------+
68
+
69
+
70
+
71
+ カラムの中身
72
+
73
+ PostテーブルとMembersテーブルを結合しカラムpost_id,name,messageを取得しました。
74
+
75
+ mysql> SELECT post_id,name,message FROM Post LEFT OUTER JOIN Members ON Post.member_id = Members.member_id;
76
+
77
+ +---------+--------+---------------------------------------------------+
78
+
79
+ | post_id | name | message |
80
+
81
+ +---------+--------+---------------------------------------------------+
82
+
83
+ | 1 | アカ | テスト文1 |
84
+
85
+ | 2 | アカ | テスト文2 |
86
+
87
+ | 3 | アカ | テスト文3 |
88
+
89
+ | 4 | アカ | 文1 |
90
+
91
+ | 5 | ao | aoの文1 |
92
+
93
+ | 6 | pink | pinkのテスト 文 1<br>555<br>333<br>桃 |
94
+
95
+ | 7 | pink | ピンク test 2<br><br>文章 |
96
+
97
+ +---------+--------+---------------------------------------------------+
98
+
99
+
100
+
101
+
102
+
17
103
  ####考えている構造
18
104
 
19
105