mysql不固定字段使用動態(tài)增加數(shù)據(jù)庫表字段。
成都創(chuàng)新互聯(lián)專注于望江網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供望江營銷型網(wǎng)站建設(shè),望江網(wǎng)站制作、望江網(wǎng)頁設(shè)計、望江網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造望江網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供望江網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
mysql不固定字段有四種技術(shù):
1.動態(tài)增加數(shù)據(jù)庫表字段
2.預(yù)留足夠的空白字段,運行時作動態(tài)映射
3.用xml格式保存在單字段里
4.改列為行,用另外一個表存放定制字段
動態(tài)增加字段的方法在實際操作時候幾乎是不可能的(sqlserver太慢,oracle索性不支持)。
mysql的字段是不能再分的
不過對于你這樣的要求,mysql還是有支持的機(jī)制的
字段值用英文逗號分隔,比如‘未分組,VIP會員,廣東客'
查詢時select * from `table_a` where id=20 and find_in_set('未分組', group_name);
因為是原生支持的做法,mysql會對其進(jìn)行優(yōu)化
1、將傳遞過來的值進(jìn)行分割 用,分割成數(shù)組
例如:$var=explode(",",$str);
2、循環(huán)數(shù)組
3、在循環(huán)內(nèi)查詢sql
查詢時候 有兩種方法 按照sql語法或者PHP語法
sql 用 find_in_set(str1,str2);
php 用 strpos(str1,str2,start);
具體語法格式自己搜索一下吧。
這個sql語句是指從數(shù)據(jù)庫表里面拼接組合goods_sn,goods_title,goods_brief,goods_name 有包含tablet字段的數(shù)據(jù)。等價于goods_sn||goods_title||goods_brief||goods_name LIKE '%tablet%。
concat 等同于字符串連接符 ||,concat(字串1, 字串2, 字串3, ...),將字串1、字串2、字串3,等字串連在一起。
擴(kuò)展資料:
MySQL,Oracle,SQL Server拼接字符串查詢示例:
例子1:
MySQL:
SELECT CONCAT(region_name,store_name) FROM Geography? WHERE store_name = 'Boston';
例子2:
Oracle:
SELECT region_name || ' ' || store_name FROM Geography? WHERE store_name = 'Boston';
例子3:
SQL Server:
SELECT region_name + ' ' + store_name FROM Geography WHERE store_name = 'Boston';
參考資料:MySQL字符串連接CONCAT()函數(shù)_W3Cschool
1,%:表示任意0個或多個字符??善ヅ淙我忸愋秃烷L度的字符,有些情況下若是中文,請使用兩個百分號(%%)表示。
比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'
將會把u_name為“張三”,“張貓三”、“三腳貓”,“唐三藏”等等有“三”的記錄全找出來。
另外,如果需要找出u_name中既有“三”又有“貓”的記錄,請使用and條件
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%貓%'
若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%貓%'
雖然能搜索出“三腳貓”,但不能搜索出符合條件的“張貓三”。
2,_: 表示任意單個字符。匹配單個任意字符,它常用來限制表達(dá)式的字符長度語句:
比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'
只找出“唐三藏”這樣u_name為三個字且中間一個字是“三”的;
再比如 SELECT * FROM [user] WHERE u_name LIKE '三__'; 只找出“三腳貓”這樣name為三個字且第一個字是“三”的;
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[yyy] @str varchar(100)
as
declare @s varchar(8000)
declare tb cursor local for
select s='if exists(select 1 from ['+b.name+'] where convert(varchar,['+a.name+']) like ''%'+@str+'%'')
print ''select ['+a.name+'] from ['+b.name+']'''
from syscolumns a join sysobjects b on a.id=b.id
where b.xtype='U' and a.status=0 and a.xusertype in(175,239,231,167,56,60,108,106)
open tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
MS數(shù)據(jù)庫的,MYSQL不熟悉,你可以試試能不能用。
exec yyy '字段的值‘
下面是執(zhí)行結(jié)果
新聞名稱:mysql表達(dá)字段怎么用 mysql 字段描述
文章位置:http://muchs.cn/article8/dococip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、服務(wù)器托管、ChatGPT、企業(yè)建站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)