mysql 搜索多个字段
mysql search for more than one field
大家好,我没有发现关于堆栈溢出的任何有用信息。
我想为一个客户搜索多个字段。
我有一些文本框,我可以在其中输入我的搜索条件。
客户table:
姓名 姓氏 工作
a b c
一个 c
一个一个
例如,当我搜索 name = a, surname = b, job = c 时,我想看到我的第一个客户,如果我搜索 name = a,我想看到每个客户(重点是,如果姓氏和工作为空,我无法从查询中取回姓名)
我想在我的存储过程中搜索客户,它必须填充一个 gridview。
我的搜索按钮的 C# 代码:
protected void btnRicerca_Click(object sender, EventArgs e)
{
GridView1.Visible = true;
ClienteInfo CI = new ClienteInfo();
DboUser objdbo = new DboUser();
int id_cliente = 0;
txtNomeCliente.Text = CI.nome_cliente;
txtCognomeCliente.Text = CI.cognome_cliente;
txtRagioneSociale.Text = CI.ragione_sociale;
txtVia.Text = CI.via;
txtCitta.Text = CI.citta;
txtProvincia.Text = CI.provincia;
txtCap.Text = CI.cap;
txtNazione.Text = CI.nazione;
txtTelefono.Text = CI.recapito_telefonico;
txtPartitaIva.Text = CI.partita_iva;
txtCodiceFiscale.Text = CI.codice_fiscale;
txtEmail.Text = CI.email;
txtPubblicaAmministrazione.Text = CI.codice_pubblica_amministrazione;
CI.id_utente = Convert.ToInt64(Session["Id_Utente"]);
id_cliente = objdbo.getClienteInfo(CI);
}
您似乎必须根据 UI 输入值创建 SQL 查询。
例如,如果有人输入姓名和姓氏的值,那么您的 SQL 查询应该像
SELECT * FROM customers WHERE name = "a" and surname = "b";
如果有人只输入姓名,您的 SQL 查询应如下所示。
SELECT * FROM customers WHERE name = "a";
理想情况下,您应该从您的应用程序管理 SQL 查询。我遇到过类似的经历,我使用解释器模式来生成 SQL 查询。
此外,最好使用 like 搜索名称。
例如:SELECT * FROM customers WHERE name like "%a%"
大家好,我没有发现关于堆栈溢出的任何有用信息。
我想为一个客户搜索多个字段。 我有一些文本框,我可以在其中输入我的搜索条件。
客户table: 姓名 姓氏 工作 a b c 一个 c 一个一个
例如,当我搜索 name = a, surname = b, job = c 时,我想看到我的第一个客户,如果我搜索 name = a,我想看到每个客户(重点是,如果姓氏和工作为空,我无法从查询中取回姓名)
我想在我的存储过程中搜索客户,它必须填充一个 gridview。
我的搜索按钮的 C# 代码:
protected void btnRicerca_Click(object sender, EventArgs e)
{
GridView1.Visible = true;
ClienteInfo CI = new ClienteInfo();
DboUser objdbo = new DboUser();
int id_cliente = 0;
txtNomeCliente.Text = CI.nome_cliente;
txtCognomeCliente.Text = CI.cognome_cliente;
txtRagioneSociale.Text = CI.ragione_sociale;
txtVia.Text = CI.via;
txtCitta.Text = CI.citta;
txtProvincia.Text = CI.provincia;
txtCap.Text = CI.cap;
txtNazione.Text = CI.nazione;
txtTelefono.Text = CI.recapito_telefonico;
txtPartitaIva.Text = CI.partita_iva;
txtCodiceFiscale.Text = CI.codice_fiscale;
txtEmail.Text = CI.email;
txtPubblicaAmministrazione.Text = CI.codice_pubblica_amministrazione;
CI.id_utente = Convert.ToInt64(Session["Id_Utente"]);
id_cliente = objdbo.getClienteInfo(CI);
}
您似乎必须根据 UI 输入值创建 SQL 查询。 例如,如果有人输入姓名和姓氏的值,那么您的 SQL 查询应该像
SELECT * FROM customers WHERE name = "a" and surname = "b";
如果有人只输入姓名,您的 SQL 查询应如下所示。
SELECT * FROM customers WHERE name = "a";
理想情况下,您应该从您的应用程序管理 SQL 查询。我遇到过类似的经历,我使用解释器模式来生成 SQL 查询。
此外,最好使用 like 搜索名称。
例如:SELECT * FROM customers WHERE name like "%a%"